比较表单提交上的复选框选中状态与页面加载状态

时间:2016-08-08 06:17:19

标签: javascript jquery html events event-handling

我在页面和表单提交上有多个复选框,我希望不发送所有这些复选框进行处理,但只发送那些状态已从页面加载中发生变化的复选框。

例如,在页面加载时,选中了复选框的原始状态。

然后用户点击相同的复选框3次,然后点击提交按钮:

  • 第一次点击 - 状态已更改为未选中
  • 第二次点击 - 状态已更改为已选中
  • 第三次点击 - 状态已更改为未选中

那么有没有办法可以将第三次点击状态与页面加载状态进行比较?在这种情况下,我想发送该复选框数据,因为它的状态已经改变。另一方面,如果用户点击两次,我不想发送它进行处理,因为它的状态在页面加载期间已经恢复原状。

2 个答案:

答案 0 :(得分:1)

当您提交html表单时,除非具有“已禁用”属性,否则将提交所有复选框。

一种策略可能是添加隐藏字段保存复选框的值,并在onSubmit上相互检查这两个,如果它们包含相同的值,则禁用该复选框。

答案 1 :(得分:0)

在这种情况下,您可以尝试这样的事情:

$(document).ready(function(){
   // get check box state at the time of page load
   if($('#chk1').is(':checked'))
   {
       var chkState1 = true;
   }
   else
   {
       var chkState1 = false;
   }

   $('#chk1').change(function(){
       // get new state of this check box and compare it with the old one. If its state is diff than put it in the ajax call otherwise not
   });
});