[英]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.