我有一个多选组合框和一个表单中的复选框。
我希望仅当用户从多选组合框中选择特定值时才启用该复选框。
这可以通过javascript或jQuery来实现吗?我已经在其他地方使用jquery了。
以复选框开头将被禁用。它应该仅在用户单击选项2
时启用答案 0 :(得分:3)
样本一。您只需添加要为其启用数组对象的复选框的选项值。在下面的示例中,我启用了单击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 为您的例子。
答案 1 :(得分:1)
我更新了您提供的jsbin链接以及实现所需效果所需的正确jQuery。
答案 2 :(得分:0)
您可以通过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>
答案 3 :(得分:0)
最简单的是,使用简单的Javascript,没有jQuery,您可以将以下onchange
属性添加到select
元素(假设元素都被相同的表单包围):
onchange="this.form['mycheck'].disabled = (this.value != 2)"
如果它们的形式不同,或者您不知道目标元素的名称,或者动态创建元素,.disabled = (this.value != 2)
将是相同的,但查找的方法是右边的复选框可能不同。