簡體   English   中英

在復選框更改延遲時提交表單

[英]Submit form on checkbox change delay

目標:我有一個帶有復選框的表單,我想在其.change()事件上提交該表單。 我希望在提交之前有一個延遲,每次單擊另一個復選框時都會將其重置。

碼:

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

此代碼有效,但提交表單的時間過早。 而且,如果我將毫秒設置為更高的值(例如幾秒鍾),那么如果用戶選擇了許多復選框,那還是可以的,但是當他們僅選擇1或2時,延遲確實很明顯。

在此先感謝您提供的所有幫助!

您需要清除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);
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM