У меня есть форма, где JQuery запускает сообщения об ошибках в зависимости от требований разных полей. Я хочу, чтобы сообщения появлялись рядом с каждым полем по мере необходимости, и я хочу, чтобы каждый из них исчезал, имел 3-секундный тайм-аут, а затем исчезал.JQuery - множественные таймауты
Но мне интересно: есть ли у кого-нибудь объект или массив, чтобы хранить все таймауты? В принципе, все ошибки в настоящее время работают с той же ссылкой на таймаут. Таким образом, если один вход вызывает ошибку, а другой - через 1 секунду после, то второе сообщение уходит через две секунды (а не 3), потому что все они относятся к одной переменной таймаута и первой настройке запуска начального таймера.
Это для формы заказа, поэтому Продукт относится к родительскому Div 'product'
для ввода, на который запускается ошибка.
У меня есть что-то вроде этого:
function error_check_number(input)
{
var intRegex = /^\d+$/;
var product = jQuery(input).closest('div.product');
if (!intRegex.test(input.val()) && input.val() != '')
{
input.val('0');
if (jQuery('div.error-message', product).length <= 0)
{
var error = jQuery("<div class='error-message'>Number Values Only</div>").hide();
error.appendTo(jQuery(product)).slideDown("fast");
}
var thetime = setTimeout(function(){
jQuery("div.error-message", product).slideUp("fast", function() {
jQuery("div.error-message").remove();
});
}, 3000);
}
else
{
clearTimeout(thetime);
jQuery("div.error-message", product).slideUp("fast", function() {
jQuery("div.error-message", product).remove();
});
}
}
Я хотел бы каждый вызов сообщение об ошибке, чтобы функционировать независимо друг от друга, насколько таймауты обеспокоены.
Что 'product'? – j08691
кричит! Обновлено под вопросом – djt
Тогда что вводит? Я не думаю, что проблема заключается в тайм-ауте. Кажется, вы используете один и тот же div для всех ошибок, поэтому, когда одна ошибка скользит вверх, вы также раздвигаете div для другой ошибки. –