只有一个复选框被选中和值

Only one checkbox checked and values

本文关键字:有一个 复选框      更新时间:2023-09-26

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

代码如下:

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

演示

,它正在工作,因为其中一个复选框被选中。但是对于这两个复选框,input value为"true"。我怎么能改变代码,当我选中复选框其他应该有一个"假"的值。

我试着这样做:

$('input.box1').on('change', function() {
        $('input.box1').not(this).prop('checked', false).val("N");
        $('input.box1').this.prop('checked', true).val("T");
});

但不工作

-我期望什么?1.例如,单击第一个复选框,该复选框的值为"T",第二个复选框的值为"N"。2. 点击第二个复选框-该复选框的值为"T"第一个复选框的值为"N"

您的代码在$('input.box1').this.prop('checked', true).val("T");行有错误

Uncaught TypeError: Cannot read property 'prop' of undefined

这是因为$('input.box1').this没有定义。语法错误。

正确的方法是简单地使用上下文this的变化函数:

$('input.box1').on('change', function() {
        $('input.box1').not(this).prop('checked', false).val("N");
        $(this).val(this.checked?'Y':'N');
});
演示工作

$('input.box1')。prop('checked', true).val("T")会抛出未捕获的错误,而不是这个,你可以使用$(this)。道具("检查",真的).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);