如果用户更改了选择框的选项,我想要禁用表单内的所有字段而不触发选择框和一个id = xyz的特定输入字段。
我如何以快速和最简单的方式做到这一点。
"#newsite_IS_HELPER"是选择框的ID
$('#newsite_IS_HELPER').change(function(){
alert('What i have to do?');
});
答案 0 :(得分:1)
您可以选择表单下的所有输入元素,并排除您不想选择的内容,即this
元素(在您的情况下触发禁用操作即select
的元素)和输入元素#xyz
。
$('#your_form_id :input:not(#xyz):not(#newsite_IS_HELPER)').prop("disabled", true);
$('#newsite_IS_HELPER').change(function(){
var this_val = $(this).val();
var disable_all = false;
if(this_val != "1"){
disable_all = true;
}
$('#your_form_id :input:not(#xyz):not(#newsite_IS_HELPER)').prop("disabled", disable_all );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="your_form_id">
<input id="xyz">
<input><input><input><input><input>
<select id="newsite_IS_HELPER">
<option value="1">enable all</option><option value="2">disable all</option><option value="3">disable all again</option>
</select>
</form>
答案 1 :(得分:0)
我该怎么做,
$ ('#newsite_IS_HELPER').change(function(){
$("input").attr("disabled", "disabled");
$(this).attr("disabled",false);
$("#xyz").attr("disabled",false);
});
或者,你可以使用prop来代替attr,就像我的代码一样,
$("input").prop('disabled', true);