每次更改“required”类的字段时,我想设置超时。 我的原始脚本有一个错误,如果你在超时完成之前移动到具有相同类的另一个字段,它将重置它并且仅在最后一个字段上删除该函数。 为了解决这个问题,我想在计时器功能中添加特定字段的名称。但是我的下面的尝试不起作用。我在想如果每个字段都有一个计时器它应该工作。 首先,我的方法是否正确?如果是的话,我做错了什么?如果没有,我怎样才能实现目标?
$('.required', this).bind('keyup change',function() {
var fieldName = $(this).attr('name');
var timer[fieldName] = null;
clearTimeout(timer[fieldName]);
timer[fieldName] = setTimeout(
function() {
if( !$(this).val() ) {
$(this).nextAll('.required-prompt').first().remove();
$(this).after(prompt);
} else {
$(this).nextAll('.required-prompt').first().remove();
required = true;
}
}
, 2000
);
});
答案 0 :(得分:3)
代码应该是这样的:
var timer = {};
$('.required', this).bind('keyup change',function() {
var fieldName = $(this).attr('name');
clearTimeout(timer[fieldName]);
timer[fieldName] = setTimeout(
function() {
if( !$(this).val() ) {
$(this).nextAll('.required-prompt').first().remove();
$(this).after(prompt);
} else {
$(this).nextAll('.required-prompt').first().remove();
required = true;
}
}
, 2000
);
});