使用其他变量内容创建变量名称

时间:2014-01-13 10:23:34

标签: jquery

每次更改“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
    );
});

1 个答案:

答案 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
    );
});