Javascript 基于选择启用/禁用输入(jQuery)
似乎不起作用。我一定是做错了什么。您需要将“disabled”设置为Javascript 基于选择启用/禁用输入(jQuery),javascript,jquery,html,css,Javascript,Jquery,Html,Css,似乎不起作用。我一定是做错了什么。您需要将“disabled”设置为true才能真正禁用某些内容。例如,如果您想禁用“其他”并启用其他所有功能,那么我建议说: $('#state').change(function () { if ($('#state Other:selected').text() == "Other"){ $('#province').attr('disabled', false); alert(1); } else {
true
才能真正禁用某些内容。例如,如果您想禁用“其他”并启用其他所有功能,那么我建议说:
$('#state').change(function () {
if ($('#state Other:selected').text() == "Other"){
$('#province').attr('disabled', false);
alert(1);
} else {
alert(2);
}
});
这将使用$(“#省”).val()
,这通常是从jQuery中的下拉列表中获取所选选项的当前值的首选方法。如果值为“其他”,则“禁用”属性设置为true
,否则设置为false。您应该使用而不是.attr('disabled',false)
。你也应该
编辑:事后考虑。如果要禁用该字段,您可能希望“清空”已键入字段的文本,因此我添加了一个.val(“”)
,如果您还想隐藏它,您可以将.hide()
和.show()
添加到这两个案例中
我将向您展示一个工作版本:
$('#state').change(function () {
$("#province").attr("disabled", $("#state").val() == "other");
});
将“触发”一个更改事件,在绑定时有效地运行该函数一次。这样,将根据运行代码时选择的状态禁用/启用省。如果没有它,即使该州不是“其他”州,该省也将可用,除非您在html中的
标记中添加了disabled='disabled'
。谢谢!你能再解释一下触发器吗。我真的不明白。@WmasterJ-添加了一些解释如果我想对多个选择使用相同的脚本怎么办?有通用的吗?谢谢
$('#state').change(function () {
$("#province").attr("disabled", $("#state").val() == "other");
});
var $state = $('#state'), $province = $('#province');
$state.change(function () {
if ($state.val() == 'other') {
$province.removeAttr('disabled');
} else {
$province.attr('disabled', 'disabled').val('');
}
}).trigger('change'); // added trigger to calculate initial state