繁体   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