簡體   English   中英

如何觸發模糊並連續運行所有輸入?

[英]How do I trigger on blur and run through all inputs in a row?

我在jQuery中遇到觸發器問題。 它觸發太多次。

我有一個表,每行11個輸入。 當我更改行時,我需要腳本在我離開的行中的每個輸入上觸發一次模糊。

我的主事件處理程序如下所示:

$('#auto_insert').on('blur', 'input.autoupdate', function (event) {
    event.stopPropagation();
    event.preventDefault();
    rid = $(this).closest('tr').attr('id');
    row_validate(rid);
});
$('#auto_insert').on('focus', 'input.autoupdate', function (e) {
    e.stopPropagation();
    e.preventDefault();
    newid = $(this).closest('tr').attr('id');
    check();
});

函數row_validate用於驗證,並且需要遍歷一行中的所有輸入:

function row_validate(rid) {
    $('#auto_insert #' + rid + ' td input.autoupdate').each(function () {
        $(this).trigger('blur');
    });
}

關於它為什么行不通的任何建議?

它主要做應做的事情,但它不斷循環播放,我不確定為什么。

新信息:

似乎它的按摩效果使我的驗證失去了控制。 有沒有辦法防止它冒泡過我的tr?

您的問題是, blur事件的處理程序調用row_validate() ,該觸發器為每個單元格觸發一個blur事件->無限循環。

您需要做的是將驗證移到僅驗證的新功能中。 然后從模糊處理程序(單個單元格更改)和row_validate()函數(行更改)中調用此新函數。

validate函數本身不能觸發任何事件!!

暫無
暫無

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

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