我的复选框有小问题。更好的方法是单选按钮,但我必须使用复选框。
以下是代码:
$('input.box1').not(this).prop('checked', false).val("N");
并且它正在工作,因为其中一个复选框已被选中。但是输入值是" true"对于这两个复选框。当我选中复选框时,如何更改该代码以执行此操作,其他应该具有" false"值。
我尝试这样的事情:
$('input.box1').on('change', function() {
$('input.box1').not(this).prop('checked', false).val("N");
$('input.box1').this.prop('checked', true).val("T");
});
但没有工作
- 我期待什么? 1.在示例中单击第一个复选框 - 该复选框的值为" T"第二个复选框的值为#34; N" 2.单击第二个复选框 - 该复选框的值为" T"第一个复选框的值为" N"
答案 0 :(得分:4)
您的代码在第$('input.box1').this.prop('checked',
true).val("T");
行
未捕获的TypeError:无法读取未定义的属性'prop'
那是因为$('input.box1').this
未定义。语法错误。
正确的方法是在更改函数中使用上下文this
:
$('input.box1').on('change', function() {
$('input.box1').not(this).prop('checked', false).val("N");
$(this).val(this.checked?'Y':'N');
});
<强> Working Demo 强>
答案 1 :(得分:0)
$('input.box1').this.prop('checked', true).val("T") it throw Uncaught error instead of this u can use $(this).prop('checked', true).val("T")
(function ($) {
var count = 0;
$(document).ready(function () {
$('input.box1').on('change', function(e) {
$('input.box1').not(this).prop('checked', false).val("N");
$(this).prop('checked', true).val("T");
console.log($("#chkBox1").val(), $("#chkBox2").val());
});
});
})(jQuery);