我正在尝试根据下拉选择禁用单选按钮。这是代码。
<form id="" action="" method="get">
<table >
<tr>
<th>Test or Exam</th>
<td>
<select id="testid" name="testid">
<option value="1">Blood Pressure</option>
<option value="2">Cholesterol</option>
<option value="4">Hearing test</option>
<option value="5">HIV-AIDS</option>
<option value="3">TB test</option>
</select>
</td>
</tr>
<tr>
<th>Test Result</th>
<td>
<input type="radio" class="testresult" name="resultid" value="1"/>Positive
<input type="radio" class="testresult" name="resultid" value="2"/>Negative
</td>
</tr>
</table>
</form>
我希望脚本在选择血压时禁用单选按钮。这是脚本
$(funtion(){
$("#testid").change(
function(){
if($(this).val() === "1"){
alert("good");
$(".testresult").attr("disabled","disabled")
}else{
$(".testresult").removeAttr('disabled')
}
})
})
})
答案 0 :(得分:1)
将funtion
替换为function
- 此外,您缺少很多分号:
编辑,我刚刚找到额外的})
加上我现在用更“最新”的attr
函数替换了removeAttr
和prop
:
$(function(){
$("#testid").change(
function(){
if($(this).val() == "1"){
alert("good");
$(".testresult").prop("disabled", true);
}else{
$(".testresult").prop('disabled', false);
}
});
});
工作jsfiddle:http://jsfiddle.net/northkildonan/kL1jyx56/
答案 1 :(得分:0)
这是小提琴:http://jsfiddle.net/37ehuxqs/1/
代码中存在一些嵌套问题。修正了这里:
$(function() {
$("#testid").change(
function() {
if ($(this).val() === "1") {
alert("good");
$(".testresult").attr("disabled", true)
} else {
$(".testresult").attr('disabled', false)
}
});
});
答案 2 :(得分:0)
您在function
中输入错误,并且您有额外的})
并且考虑到您可能希望处理程序在页面加载时启动,最后添加.change()
以触发{{ 1}}页面加载时并且change
比.prop()
更受欢迎,它可以使代码更短,更容易阅读。
如果以前检查过的单选按钮仍然被检查困扰您(它不会被提交),您可以在.attr()
中这样设置取消选中所有内容:
.prop()
&#13;
$(function(){
$("#testid").on('change', function(){
this.value !== "1" || alert( 'good' );
$('.testresult').prop({disabled: this.value === "1", checked: false});
})
.change();
});
&#13;
答案 3 :(得分:0)
这是有效的
$( document ).ready(function() {
$("#testid").on('change', function(){
if($(this).val() === "1"){
alert("good");
$(".testresult").attr("disabled","disabled");
}else{
$(".testresult").removeAttr('disabled');
}
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form id="" action="" method="get">
<table >
<tr>
<th>Test or Exam</th>
<td>
<select id="testid" name="testid">
<option value="">Select an option</option>
<option value="1">Blood Pressure</option>
<option value="2">Cholesterol</option>
<option value="4">Hearing test</option>
<option value="5">HIV-AIDS</option>
<option value="3">TB test</option>
</select>
</td>
</tr>
<tr>
<th>Test Result</th>
<td>
<input type="radio" class="testresult" name="resultid" value="1"/>Positive
<input type="radio" class="testresult" name="resultid" value="2"/>Negative
</td>
</tr>
</table>
</form>
&#13;
答案 4 :(得分:0)
这样做:
<input type="radio" name="disableme" id=1> Animal
<input type="radio" name="disableme" id=2> Mammal
<input type="radio" name="disableme" id=3> Human
和这个
var radios = document.formName.disableme;
for (var i=0, iLen=radios.length; i<iLen; i++) {
radios[i].disabled = true;
}
您不必添加ID;)