当我尝试使用 attr() 禁用或只读输入字段时,我出现了有线行为。
removeAttr('disabled')
工作正常。
attr('name', 'somthing')
正在运行
attr('id', '其他')
正在工作
attr('disabled','disabled')
不起作用 -> 它只在 DOM 中写入disabled=""并且不会禁用输入字段
attr('readonly','readonly')
不起作用 -> 它只在 DOM 中写入 readonly="",但输入字段仍然可以编辑。
$(document).ready(function() {
$("input[name='rdio']").live('click', function() {
$(".radio_select").find("input[name='rdio']").each(function(){
if(this.checked)
{
$("#"+this.value).removeAttr('disabled');
}
else
{
$("#"+this.value).attr('disabled','disabled');
}
});
});
});
有人经历过这种行为吗?顺便说一句,我正在使用 jquery 1.4.2
编辑:抱歉,这是我尝试过但忘记把它放回去的东西。因此,使用 attr() 问题仍然存在。
最佳答案
您在哪种浏览器中遇到这种行为会非常有趣。更有趣的是要知道,如果不工作意味着该元素没有被禁用,或者该属性只是缺少disabled
作为值。
由于 W3C
,不应有 disabled
或 readonly
值。
从语法上来说
<select disabled></select>
很好而且正确。不需要任何值。
不幸的是,无法使用 javascript 创建这样的构造(如果您不想覆盖 html),因此您被迫添加一些值。由于这两个属性都是 bool 值,因此您几乎可以添加任何内容。 .attr('disabled', 'foobar')
与 .attr('disabled', true)
一样好。
关于Jquery 使用 attr() 禁用输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3342031/