Jquery removeAttr不会删除Firefox中的禁用属性
下面的代码通过使用removeAttr函数删除disabled属性来解锁下拉列表。此示例在适用于Ubuntu的Mozilla Firefox 24中不起作用。但是,如果在RemoveAttr函数之后添加一个警报(如下一个示例中所示),则其效果非常好:Jquery removeAttr不会删除Firefox中的禁用属性,jquery,firefox,Jquery,Firefox,下面的代码通过使用removeAttr函数删除disabled属性来解锁下拉列表。此示例在适用于Ubuntu的Mozilla Firefox 24中不起作用。但是,如果在RemoveAttr函数之后添加一个警报(如下一个示例中所示),则其效果非常好: $("#dropdown1").change(function() { $('#dropdown2').find('option').remove().end(); if (obj[$(this).v
$("#dropdown1").change(function() {
$('#dropdown2').find('option').remove().end();
if (obj[$(this).val()] !== undefined)
{
$('#dropdown2').removeAttr('disabled');
$('#dropdown2').append('<option></option>' + obj[$(this).val()]);
$('#dropdown2').attr('required', true);
}
else
{
$('#dropdown2').attr('disabled', true);
$('#dropdown2').attr('required', false);
}
});
工作示例:
$("#dropdown1").change(function() {
$('#dropdown2').find('option').remove().end();
if (obj[$(this).val()] !== undefined)
{
$('#dropdown2').removeAttr('disabled');
alert("REMOVED");
$('#dropdown2').append('<option></option>' + obj[$(this).val()]);
$('#dropdown2').attr('required', true);
}
else
{
$('#dropdown2').attr('disabled', true);
$('#dropdown2').attr('required', false);
}
});
使用.prop的示例也不起作用:
$("#dropdown1").change(function() {
$('#dropdown2').find('option').remove().end();
if (obj[$(this).val()] !== undefined)
{
$('#dropdown2').prop('disabled', false);
$('#dropdown2').append('<option></option>' + obj[$(this).val()]);
$('#dropdown2').attr('required', true);
}
else
{
$('#dropdown2').prop('disabled', true);
$('#dropdown2').attr('required', false);
}
});
您应该使用设置禁用的属性状态
使能
$('#dropdown2').prop('disabled', false);
禁用
$('#dropdown2').prop('disabled', true);
阅读:来自文档]:
从jQuery1.6开始,.attr方法返回未定义的属性
这还没有确定。检索和更改DOM属性,如
表单元素的选中、选中或禁用状态使用
.道具法
所以你应该使用这个函数
$('#dropdown2').prop('disabled', false); // Enables the element
$('#dropdown2').prop('disabled', true ); // Disables the element
使用
disable true make disable元素和disable false Enable元素关于.attr方法有很多文档。。。要检索和更改DOM属性,例如表单元素的选中、选中或禁用状态,请使用.prop方法。仅供参考,不要使用removeProp替换removeAttr,将属性设置为false,而不要设置为false。你可以共享相关的htmland对象的值吗?如果问题仍然存在,你应该创建一个复制此问题好吧,看来Select2插件正在搞乱这些下拉列表。一旦删除,一切正常。同样,仍然不起作用:$dropdown1.changefunction{$'dropdown2.find'option.remove.end;if obj[$this.val]!==未定义的{$'dropdown2.prop'disabled',false;$'dropdown2.append+obj[$this.val]$'dropdown2.attr'required',true;}否则{$'dropdown2.prop'disabled',true;$'dropdown2.attr'required',false;};同样的问题。不work@user1029829如果问题仍然存在,您应该创建一个JSFIDLE.net来重现这个问题。不起作用。
$('#dropdown2').prop('disabled', false);