我为此使用jquery 3.4.1
选择不同的值时,我试图禁用输入元素。
$(document).ready(function() {
$('form input[name="spouseName"]').prop("disabled", true);
$('form input[name="children"]').prop("disabled", true);
$("form select option [value='married']").change(function() {
$('form input[name="spouseName"]').prop("disabled", false);
$('form input[name="children"]').prop("disabled", false);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<form>
<select class="form-control" name="maritalStatus" id="maritalStatus">
<option value="Married">Married</option>
<option selected value="UnMarried">UnMarried</option>
<option value="Male Widow">Male Widow</option>
<option value="FeMale Widow">FeMale Widow</option>
<option value="Divorcee">Divorcee</option>
</select>
<input type="text" class="form-control" name="spouseName" id="spouseName" aria-describedby="spName" placeholder="Spose Name">
<input type="text" class="form-control" name="children" id="children" aria-describedby="childrens" placeholder="Children">
</form>
在change
事件上,您应检查所选选项的值。也可以使用.removeAttr()
来删除属性。
尝试以下方式:
.removeAttr()
$(document).ready(function(){
$('form input[name="spouseName"]').prop("disabled", true);
$('form input[name="children"]').prop("disabled", true);
$("form select").change(function(){
if($(this).val() == 'Married'){
$('form input[name="spouseName"]').removeAttr("disabled")
$('form input[name="children"]').removeAttr("disabled")
}
else{
$('form input[name="spouseName"]').prop("disabled", true);
$('form input[name="children"]').prop("disabled", true);
}
});
});
您没有提到什么不起作用,但是您的onChange无法起作用。
css选择器有一个空格
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<select class="form-control" name="maritalStatus" id="maritalStatus">
<option value="Married">Married</option>
<option selected value="UnMarried">UnMarried</option>
<option value="Male Widow">Male Widow</option>
<option value="FeMale Widow">FeMale Widow</option>
<option value="Divorcee">Divorcee</option>
</select>
<input type="text" class="form-control" name="spouseName" id="spouseName" aria-describedby="spName" placeholder="Spose Name">
<input type="text" class="form-control" name="children" id="children" aria-describedby="childrens" placeholder="Children">
</form>
应该是:
option [value='married']
您可以根据条件尝试所需的解决方案。请检查以下代码
option[value='married']
$(document).ready(function() {
$('form input[name="spouseName"]').prop("disabled", true);
$('form input[name="children"]').prop("disabled", true);
$("#maritalStatus").change(function() {
if($(this).val() !=='UnMarried'){
$('form input[name="spouseName"]').prop("disabled", false);
$('form input[name="children"]').prop("disabled", false);
}else{
$('form input[name="spouseName"]').prop("disabled", true);
$('form input[name="children"]').prop("disabled", true);
}
});
});