将焦点设置为动态创建的输入字段,而不知道其ID

时间:2014-02-04 02:20:26

标签: javascript jquery focus html-form

我有一个jQuery / AJAX函数,可以从服务器加载HTML表单元素。表格上的字段各不相同。我想在加载完成后将焦点设置到第一个可用输入字段。我试过了:

 $(':input:enabled:visible:first').focus();

但这不起作用:( 我不确定如何解决jQuery中的输入字段。我不知道返回的元素的ID。

我的功能如下所示,而my_html变量包含许多简单的输入字段,例如

 <input type='text' name='test' value='prefilled' />

AJAX功能:

    $.loadIDX = function (idx, position){

        var url = 'URL HERE';

        $.ajax({
              url:  url, 
              type: "POST",
              data: {

                     idx:idx,
                     position:position

              },
              dataType: 'json', 
              success: function(data) {

                if(data.status=='request'){

                     var my_html = '<div id="slide_in"><div id="please_enter_'+idx+'" class="please_enter">Please enter:</div><form id="cform_'+idx+'">';

                     // loop through json & create html input form fields
                     $.each(data, function(key, val) {
                         if(key!='status'){
                            my_html += val;
                        }
                     })

                     // close up the form
                     my_html += '<input class="submit_button" type="button" value="ok" onClick="postForm('+idx+','+position+')" /></form></div>';

                    // place the new HTML into the DIV
                    $('#yn_'+idx).html( my_html );

                    // set focus... HOW?
                    $(':input:enabled:visible:first').focus();

                } else {
                    $.closeIDX(idx);
                }
              }

              });
    }

1 个答案:

答案 0 :(得分:3)

怎么样

$('#yn_'+idx).html( my_html ).find('input:first').focus();