【问题标题】:Check if check box state has changed and submit button had been pressed at the same time检查复选框状态是否已更改并同时按下提交按钮
【发布时间】:2013-10-03 06:54:45
【问题描述】:

好的,所以我有一个复选框表。一旦我的页面加载,其中一些复选框可能会被选中,而另一些可能会被取消选中。我需要感知任何一个复选框的状态变化,一旦按下提交按钮,我需要根据状态变化的复选框是被选中还是取消选中来做一些事情。

这是我现在写的:

$('new_user_form').submit(function(){ 
  $("input[type='checkbox']").change(function() {
    $('#new_user_form *').filter(':checkbox').each(function(){
              if(this.checked) 
              {
                alert("Do something!");
              } 
              else 
              {
                alert("Do something else!");
              }
         });
  });
});

它不工作。我可以将检查复选框是否更改条件与表单提交条件结合起来吗?

而且我需要帮助来完成我正在尝试做的事情。

更新

根据我得到的答案,这就是我现在使用的。还是行不通。我想确保脚本响应复选框状态的变化以及复选框状态的变化并单击按钮。

$("input[type='checkbox']").change(function() {
    $('#new_user_form *').filter(':checkbox').each(function(){
              if($(this).is(":checked")) 
              {
                alert("Checkbox checked!");
                $('#new_user_form ').submit(); 
        {
            alert("Checkbox checked and submit clicked!");
            //Do something
        });

             } 
             else 
             {
               alert("Checkbox unchecked!");
           $('#new_user_form ').submit(); 
        {
            alert("Checkbox unchecked and submit clicked!");
            //Do something else
                }); 
             }
   });
}); 

【问题讨论】:

    标签: javascript jquery checkbox


    【解决方案1】:
    $("input[type='checkbox']").change(function() {
        $('#new_user_form *').filter(':checkbox').each(function(){
                  if($(this).is(":checked")) 
                  {
                    alert("Do something!");
                  $('#new_user_form ').submit(); //for submit form use in any if else as your requirement
                  } 
                  else 
                  {
                    alert("Do something else!");
                  }
             });
      });
    

    参考checked

    【讨论】:

      【解决方案2】:

      尝试使用defaultChecked 属性检查复选框的状态是否已更改

      $("input[type='checkbox']").change(function () {
          $('#new_user_form :checkbox').filter(function(){
              return this.checked != this.defaultChecked
          }).each(function () {
              if (this.checked) {
                  alert("Do something!");
              } else {
                  alert("Do something else!");
              }
          });
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-17
        • 2014-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-03
        相关资源
        最近更新 更多