【发布时间】:2015-10-13 15:59:02
【问题描述】:
我有以下看法:
<div>
<label id = "show_hide_checkbox_label">Text Input?</label>
<input type ="checkbox" class="myCheckbox" onchange="show_hide_divs()" />
</div>
<div id="text_div" hidden>
<label id ="emp_id_input_label">Employee ID:</label>
<input type="text" name="emp_id" id="employee_id_input"></input>
</div>
<div id="select_div">
<label id= "emp_id_add_label">Employee ID:</label>
<select name="emp_id" id = "employee_id">
<option>--Select--</option>
<option>INCB001</option>
<option>INCB002</option>
<option>INCB003</option>
</select>
</div>
我想做的是这样的:
默认情况下,复选框未选中,文本框隐藏和禁用,选择元素可见,我只能从选择元素中的选项发布数据,我不能从文本框发布数据。但是,如果我选中该复选框,则选择元素将变为隐藏和禁用,并且文本框可见并启用,并且我只能从文本框发布数据,而不能从选择元素发布数据。如果我再次取消选中该复选框,则行为会反转等等。
不幸的是,下面的 jQuery 代码不允许我在复选框更改时正确禁用/启用和显示/隐藏 div。
这是我的 jQuery 代码:
<script>
function show_hide_divs()
{
if ($('.myCheckbox').is(':checked'))
{
$("div#text_div").show();
$("div#text_div").children().prop('disabled', 'false');
$("div#select_div").hide();
$("div#select_div").children().prop('disabled', 'true');
}
else {
$("div#select_div").show();
$("div#select_div").children().prop('disabled', 'false');
$("div#text_div").hide();
$("div#text_div").children().prop('disabled', 'true');
}
}
</script>
我的 jQuery 代码似乎有问题,只是我自己弄不明白。
【问题讨论】:
标签: javascript jquery html css checkbox