【问题标题】:Submit form on checkbox change delay提交关于复选框更改延迟的表格
【发布时间】:2018-01-28 15:17:33
【问题描述】:

目标:我有一个带有复选框的表单,我想在他们的 .change() 事件中提交。我希望在提交之前有一个延迟,每次单击另一个复选框时都会重置。

代码:

$('input[type="checkbox"]').change(function(){
    setTimeout(function(){
      $('#nav_form').submit();
    },750);
});

此代码有效,但提交表单过早。如果我将毫秒设置为更高的值,比如几秒,如果用户选择了许多复选框,它会起作用,但是当他们只选择 1 或 2 时,延迟真的很明显。

提前感谢所有帮助!

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    您需要清除 setTimeout - 它类似于“去抖动”文本条目,例如 Ajax 控制的自动完成。

    var tId;
    $('input[type="checkbox"]').change(function(){
        clearTimeout(tId);
        tId=setTimeout(function(){
          $('#nav_form').submit();
        },750);
    });
    

    如果您只想提交复选框,则可能需要添加测试:

    var tId;
    $('input[type="checkbox"]').change(function(){
        clearTimeout(tId);
        if (('input[type="checkbox"]:checked').length>0){
          tId=setTimeout(function(){
            $('#nav_form').submit();
          },750);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 2015-08-16
      • 1970-01-01
      • 2013-10-03
      相关资源
      最近更新 更多