虽然这不一定回答了OP的问题,但它可能会帮助一些像我一样来到这里的人。
在我的情况下,我有多个复选框检查哪个输入应该提交到表单,但只有其中两个是至少必须选中一个的。同时使用jQuery 1.11。
编辑1:2019-12-10
添加代码以更改checked="checked"
属性。
编辑2:2019-12-11
添加代码以更改value="1"
或value="0"
属性。
var checkbox_phone = $('.checkbox label[for="tel"] input')
var checkbox_email = $('.checkbox label[for="email"] input')
checkbox_phone.change(function() {
var set_to_true = $(this).prop('checked') ? 'true' : 'false';
if (set_to_true == 'true') {
checkbox_phone.attr('checked', 'checked');
checkbox_phone.attr('value', '1');
} else {
checkbox_phone.removeAttr('checked');
checkbox_phone.attr('value', '0');
checkbox_email.prop('checked', true);
checkbox_email.attr('checked', 'checked');
checkbox_email.attr('value', '1');
}
});
checkbox_email.change(function() {
var set_to_true = $(this).prop('checked') ? 'true' : 'false';
if (set_to_true == 'true') {
checkbox_email.attr('checked', 'checked');
checkbox_email.attr('value', '1');
} else {
checkbox_email.removeAttr('checked');
checkbox_email.attr('value', '0');
checkbox_phone.prop('checked', true);
checkbox_phone.attr('checked', 'checked');
checkbox_phone.attr('value', '1');
}
});
...
<div>
<div class="checkbox">
<label for="tel">
<input type="checkbox" value="1" checked="checked"> <strong>Phone</strong>
</label>
</div>
<input class="form-control" id="tel" name="tel" autocomplete="tel" type="text" placeholder="Enter your phone number" >
</div>
<div>
<div class="checkbox">
<label for="email">
<input type="checkbox" value="1" checked="checked"> <strong>Email</strong>
</label>
</div>
<input class="form-control" id="email" name="email" autocomplete="email" type="text" placeholder="Enter you email address">
</div>
...
return false
呢?而且在jQuery中,return false
包含了preventDefault
的功能。 - Oriol