下一个元素上的自动聚焦(autotab)不适用于动态创建的字段

时间:2015-10-08 05:35:11

标签: javascript jquery ajax autocomplete autofocus

$("#destination1" + countVar).autocomplete({

        minLength : 3,
        source : function(request, response) {
            var url = configOptions.icaocodeUrl;
            var term = request.term;
            url=url+term;
            console.log(url);
            $.ajax({
                url : url,
                type : "GET",
                data : request,
                dataType : "json",
                success : function(data) {
                    response(data.slice(0, 10));
                    //alert(data);
                },error: function(xhr, textStatus) {
                    alert('error'); 
                }
            });
        },
        change:function(event,ui){
            console.log("fired in dest2");
        },close:function(event,ui){
            console.log("close in dest2"+'#dof1'+countVar);
            console.log(countVar);
            $(this).parents('form').find('#dof1'+countVar)
              .filter(function () { return $(this).val() === ''; })
              .first().focus();             

            }
    });

上面是我的代码,用于自动完成和autotab(自动对焦)到动态创建的元素的下一个字段.autotab(autofocus)对于普通的html工作正常,但它不适用于动态创建的元素。

1 个答案:

答案 0 :(得分:0)

您是否尝试在动态添加的标签页上focus()?如果是这样,您可能很快就会触发focus()并且DOM元素可能不在那里。

尝试将焦点函数包装到setTimeout()函数中以对其进行测试。

setTimeout(function () {
    $(this).parents('form').find('#dof1'+countVar)
          .filter(function () { return $(this).val() === ''; })
          .first().focus();   
}, 2000); // 2 seconds