我有一个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);
}
}
});
}
答案 0 :(得分:3)
怎么样
$('#yn_'+idx).html( my_html ).find('input:first').focus();