我试图在单选按钮设置为“否”选项时禁用Web表单特定部分中的每个输入字段(并在选择“是”时还原此选项,但是没有使其正常工作。我目前有这个代码用于“观看”单选按钮并根据需要启用/禁用:
jQuery("#ReportOn").change(function () {
if(jQuery("#ReportOff").is(":checked")) {
// Everything working up until here , but below command does nothing.
jQuery("#reportform > input").attr("disabled", true);
} else if(jQuery("#ReportOn").is(":checked")) {
jQuery("#reportform > input").removeAttr("disabled");
}
});
表格如下:
<form method="post" action="post.php">
<input type="radio" name="report" id="ReportOn" value="1" /><label for="ReportOn">Yes</label>
<input type="radio" name="report" id="ReportOff" value="0" /><label for="ReportOff">No</label>
<div id="reportform">
<input type="text" name="title" id="ReportTitle" />
<input type="text" name="subtitle" id="ReportSubtitle" />
</div>
</form>
每当“报告”单选按钮设置为“否”时,应禁用表单的其余部分。
我在这里错过了什么阻止它工作?
答案 0 :(得分:2)
这是同一任务的另一种解决方案;
$('input[name="report"]').change(function(){
var disabled = ($(this).val() !== "1");
$('#reportform input').attr("disabled", disabled);
});
答案 1 :(得分:1)
尝试更改:
jQuery("#reportform > input")
为:
jQuery("#reportform input")
答案 2 :(得分:0)
也许你有一些错误,比如两个具有相同ID的表单? 因为它对我有用,请看:http://jsfiddle.net/JqqGb/
答案 3 :(得分:0)
您的脚本似乎有效。
确保在之后将放在HTML(ReportOn,ReportOff)中声明两个DOM元素之后。脚本不知道它们的存在。
这将有效:
<div id="something"></div>
<script>$("#something").text('hello');</script>
这个不会:
<script>$("#something").text('hello');</script>
<div id="something"></div>
要避免这些问题,您应该在文档完全加载后运行脚本 - document.ready()方法。