只选中了一个复选框和值

时间:2015-09-04 07:09:12

标签: javascript jquery checkbox

我的复选框有小问题。更好的方法是单选按钮,但我必须使用复选框。

以下是代码:

$('input.box1').not(this).prop('checked', false).val("N");

DEMO

并且它正在工作,因为其中一个复选框已被选中。但是输入值是" 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"

2 个答案:

答案 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);