Javascript 如何根据多框中的选择启用/禁用复选框
我在表单中有一个多选组合框和一个复选框 我希望仅当用户从“多选”组合框中选择特定值时才启用该复选框 这可以通过javascript或jQuery实现吗。我已经在别处使用jquery了 例如:Javascript 如何根据多框中的选择启用/禁用复选框,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我在表单中有一个多选组合框和一个复选框 我希望仅当用户从“多选”组合框中选择特定值时才启用该复选框 这可以通过javascript或jQuery实现吗。我已经在别处使用jquery了 例如: 首先,复选框将被禁用。仅当用户单击选项2时才应启用该选项。您可以通过javascript启用/禁用html元素,方法是: document.getElementById('<the id of your checkbox here>').disabled = true; document.ge
首先,复选框将被禁用。仅当用户单击选项2时才应启用该选项。您可以通过javascript启用/禁用html元素,方法是:
document.getElementById('<the id of your checkbox here>').disabled = true;
document.getElementById(“”).disabled=true;
因此,在禁用/启用复选框时,必须添加多选组合框的OnChange事件,并在某些函数中添加逻辑。
例如:
函数myfunc(sel)
{
如果(选择值=“2”)
document.getElementById(“”).disabled=true;
}
您可以通过以下javascript启用/禁用html元素:
document.getElementById('<the id of your checkbox here>').disabled = true;
document.getElementById(“”).disabled=true;
因此,在禁用/启用复选框时,必须添加多选组合框的OnChange事件,并在某些函数中添加逻辑。
例如:
函数myfunc(sel)
{
如果(选择值=“2”)
document.getElementById(“”).disabled=true;
}
最简单的方法是,使用纯Javascript,不使用jQuery,您可以将以下onchange
属性添加到select
元素中(假设两个元素都由相同的表单包围):
如果它们的形式不同,或者您不知道所需元素的名称,或者元素是动态创建的,
.disabled=(this.value!=2)
将是相同的,但找到正确复选框的方法可能不同。最简单的方法是,使用纯Javascript,而不使用jQuery,您可以将以下onchange
属性添加到select
元素中(假设两个元素都由相同的表单包围):
如果它们的形式不同,或者您不知道所需元素的名称,或者元素是动态创建的,
.disabled=(this.value!=2)
将是相同的,但是找到正确复选框的方法可能会有所不同。我使用实现所需效果所需的正确jQuery更新了您提供的jsbin链接
我用适当的jQuery更新了您提供的jsbin链接,以达到预期效果
一个样本。只需将要启用其复选框的选项值添加到数组对象中。在下面的示例中,我启用了单击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>
$(函数(){
var arrVal=[“2”、“3”、“5”、“7”];
$(“#组合框”).change(函数(){
var valToCheck=String($(this.val());
if(jQuery.inArray(valToCheck,arrVal)=-1)
{
$(“#检查”).attr(“禁用”、“真实”);
}
其他的
{
$(“#检查”).removeAttr(“禁用”);
}
});
});
选择1
选择2
选择3
选择4
备选案文5
备选案文6
备选案文7
以您为例。一个示例。只需将要启用其复选框的选项值添加到数组对象中。在下面的示例中,我启用了单击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>
$(函数(){
var arrVal=[“2”、“3”、“5”、“7”];
$(“#组合框”).change(函数(){
var valToCheck=String($(this.val());
if(jQuery.inArray(valToCheck,arrVal)=-1)
{
$(“#检查”).attr(“禁用”、“真实”);
}
其他的
{
$(“#检查”).removeAttr(“禁用”);
}
});
});
选择1
选择2
选择3
选择4
备选案文5
备选案文6
备选案文7
以您为例。如果选项2和选项3需要更改,该怎么办?您的意思是,如果选项2和3都被选中,它将被激活?或者仅仅是1或其他?如果选项2和选项3需要更改怎么办?您的意思是,如果选项2和3都被选中,它将被激活?还是只有一个或另一个?
<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>