我有以下代码通过使用 removeAttr 函数删除 disabled 属性来解锁下拉列表。此示例在 Mozilla Firefox 24 for Ubuntu 中不起作用。但是,如果在 RemoveAttr 函数之后添加一个警报,它可以正常工作,如下一个示例所示:
$("#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);
}
});