如果" marketingAAA"我试图设置这个方式。被检查为真,一个隐藏的复选框" marketingPhone"也设置为TRUE。这很有效。
但是,如果页面上的任何其他复选框设置为TRUE,那么对于" marketingPhone"它仍然为TRUE。无法弄清楚原因。如果" marketingAAA"它应该保持为假。未选中为TRUE。有没有人看到这个问题?
$(function() {
var marketingAAA= $("input[type='checkbox']");
var marketingPhone = $("input[type='hidden'][name='marketingPhone']");
marketingAAA.on('change', function()
{
if ($(this).val() == "TRUE") {
marketingPhone.prop('checked',true);
marketingPhone.val('TRUE');
} else {
marketingPhone.prop('checked',false);
marketingPhone.val('FALSE');
}
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="marketingrules" name="marketingBBB" type="checkbox" class="radio-button-input" value="TRUE">
<input id="marketing" name="marketingAAA" type="checkbox" class="radio-button-input" value="TRUE">
<input type="hidden" name="marketingPhone" value=""/>
&#13;
答案 0 :(得分:2)
问题是因为您正在选择所有 [type="checkbox"]
元素。要解决此问题,请仅选择marketingAAA
元素。
请注意,在下面的示例中,我将隐藏元素更改为text
,以便更容易看到效果。我还删除了checked
属性的设置,因为hidden
输入没有。
$(function() {
var $marketingAAA = $("#marketing");
var $marketingPhone = $("input[name='marketingPhone']");
$marketingAAA.on('change', function() {
$marketingPhone.val(this.checked ? 'TRUE' : 'FALSE');
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="marketingrules" name="marketingBBB" type="checkbox" class="radio-button-input" value="TRUE">
<input id="marketing" name="marketingAAA" type="checkbox" class="radio-button-input" value="TRUE">
<input type="text" name="marketingPhone" value="" />
&#13;
答案 1 :(得分:2)
在您的功能中,您应指定&#39; marketAAA&#39;。
var marketingAAA= $("input[type='checkbox'][name='marketingAAA']");
现在它检查所有复选框,如果一个为真,它将检查&#39; marketingPhone&#39;。
$(function() {
var marketingAAA= $("input[type='checkbox'][name='marketingAAA']");
var marketingPhone = $("input[type='hidden'][name='marketingPhone']");
marketingAAA.on('change', function()
{
if ($(this).val() == "TRUE") {
marketingPhone.prop('checked',true);
marketingPhone.val('TRUE');
} else {
marketingPhone.prop('checked',false);
marketingPhone.val('FALSE');
}
});
});
答案 2 :(得分:1)
正确设置此var
var marketingAAA= $("#marketing");
答案 3 :(得分:1)
问题在于您在脚本中定义变量marketingAAA:
var marketingAAA= $("input[type='checkbox']");
这样您就可以选择页面中的所有复选框,但只需要marketingAAA。
因此,不要选择所有复选框,而是尝试通过它获取元素的ID:
var marketingAAA= $("#marketing");
或者它的名字就像你在以下行中所做的那样:
var marketingAAA = $("input[type='checkbox'][name='marketingAAA']");
请记住,html中的ID应该是唯一的!