jquery已检查和未选中的事件

时间:2016-11-22 22:18:32

标签: javascript jquery checkbox

我在这里遇到了以下代码

的问题
$('.paron').change(function() {
   if($(this).is(":checked")) {
          var moduleid = <?php echo $moduleid; ?>;
                var studentid = $(this).attr('id');
                var weeknum = <?php echo $weeknum; ?>;

                undisableTxt(studentid);

             }
       });

所以我接受id tr input并{i}}将其发送给函数。一切都好到现在为止。 但是当用户check input [checkbox]时会发生这种情况。 当他取消勾选时,我怎么能让id将它发送到另一个函数???

我尝试过以下但没有运气

   $('.paron').change(function() {
if($(this).is(":checked")) {
     var moduleid = <?php echo $moduleid; ?>;
     var studentid = $(this).attr('id');
     var weeknum = <?php echo $weeknum; ?>;

             undisableTxt(studentid);

      } else {
        disableTxt(studentid); //error for undefined variable student id.
      }
  });

所以我收到未定义studentid的错误。仅供参考,每一行都有另一个身份证。

1 个答案:

答案 0 :(得分:1)

变量'studentId'在您的else块中不存在。此外,您不应该使用var in blocks定义变量,因为var不会在块级别定义变量,使用let或const。我还设置了$ this,以便为了性能而来回保存。

在jQuery中你会这样做。

$('.paron').change(function() {
  const $this = $(this);  
  const studentid = $this.attr('id');

  if($this.is(":checked")) {
    // removed for brevity, but using let or const
    undisableTxt(studentid);
  } else {
    disableTxt(studentid); 
  }
});