簡體   English   中英

jQuery 更改事件序列

[英]jQuery change event sequence

我在表單上的 textarea 中添加了 ajax 驗證,並在 html 中使用onblur啟動它。 但是我注意到如果我去提交onblur事件不會觸發。 閱讀了大量背景資料后,我發現了一個setTimeout技巧,我認為它應該通過將提交延遲到模糊之后來工作。 但我顯然做錯了什么或者誤解了實際發生的事情,因為它不起作用。

我在頁腳中讀取到我的頁面的文件中的文檔就緒塊中編碼了以下內容:

$('button[type="submit"]').click(function(){
    setTimeout(() => this,0);
    $("#description").trigger('blur');
});

任何人都可以看到/解釋我的問題嗎?

據我了解,您使用 AJAX 將文本字段值發送到服務器以對其進行驗證。

函數 setTimeout 對您的情況沒有幫助。 您必須先等待驗證結果。 並在驗證結果到達后提交表單。

所以你的代碼可能是這樣的:

var isValid;

$("#description").on('blur', function(event){
    isValid = false;
    startValidation().then(function(){
        isValid = true;
        form.submit();
    });
});

$('button[type="submit"]').on('click', function(event){
    if (!isValid){
        event.preventDefault();
        return false;
    }
});

暫無
暫無

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

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