【发布时间】:2010-02-06 14:01:13
【问题描述】:
我在表单中有一个多选组合框和一个复选框。
我希望仅当用户从多选组合框中选择特定值时才启用该复选框。
这是否可以通过 javascript 或 jQuery 来实现。我已经在其他地方使用 jquery。
以复选框开头的将被禁用。只有当用户点击选项 2 时才应该启用它
【问题讨论】:
标签: javascript jquery html forms
我在表单中有一个多选组合框和一个复选框。
我希望仅当用户从多选组合框中选择特定值时才启用该复选框。
这是否可以通过 javascript 或 jQuery 来实现。我已经在其他地方使用 jquery。
以复选框开头的将被禁用。只有当用户点击选项 2 时才应该启用它
【问题讨论】:
标签: javascript jquery html forms
一个样本。您只需将要启用复选框的选项值添加到数组对象。在以下示例中,我启用了单击 2、3、5 和 7 选项的复选框。
<script type="text/javascript">
$(function(){
var arrVal = [ "2","3", "5", "7" ];
$("#combobox").change(function(){
var valToCheck = String($(this).val());
if ( jQuery.inArray(valToCheck,arrVal) == -1 )
{
$("#check").attr("disabled", "true");
}
else
{
$("#check").removeAttr ( "disabled" );
}
});
});
</script>
<select id="combobox" size="9" id="reasons" multiple="multiple">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
<option value="5">Option 5</option>
<option value="6">Option 6</option>
<option value="7">Option 7</option>
</select>
Working demo 以您为例。
【讨论】:
我使用正确的 jQuery 更新了您提供的 jsbin 链接,以实现所需的效果。
【讨论】:
您可以通过 javascript 启用/禁用 html 元素:
document.getElementById('<the id of your checkbox here>').disabled = true;
因此,您必须添加多选组合框的 OnChange 事件,并在禁用/启用复选框时在某些函数中添加逻辑。 示例:
<select onChange="myfunc(this)">
...
<script>
function myfunc(sel)
{
if (sel.selectedValue == "2")
document.getElementById('<the id of your checkbox here>').disabled = true;
}
</script>
【讨论】:
最简单的,直接使用 Javascript,而不使用 jQuery,您可以将以下 onchange 属性添加到 select 元素(假设元素都被相同的表单包围):
onchange="this.form['mycheck'].disabled = (this.value != 2)"
如果它们不在同一个表单中,或者如果您不知道预期元素的名称,或者元素是动态创建的,.disabled = (this.value != 2) 将是相同的,但找到正确复选框的方法可能会有所不同。
【讨论】: