我在此读了类似的帖子,但此时无法工作。我的略有不同。
我调用了一个javascript函数addFormField,它在表单中创建了一个动态输入元素。这部分工作正常。在该函数中,我调用JQuery函数loadData(id)来测试动态创建的元素的id是否存在但是不存在。是否正确调用loadData以等待$创建输入元素id,然后再检查它是否已创建?谢谢!
function addFormField() {
var id = document.getElementById("id").value;
$("#divTxt").append("<p id='row" + id + "'><label for='txt" + id + "'>Field " + id + " <input type='text' size='20' id='txt" + id + "'><p>");
$(function () {
loadData(id);
});
id = (id - 1) + 2;
document.getElementById("id").value = id;
}
function loadData(id) {
if ( $('#txt' + id).length ){
alert('success');
}
else {
alert ('fail');
}
}
<html>
<p><a href="#" onClick="addFormField(); return false;">Add</a></p>
<form method="get" id="form1" action='#'>
<input type="hidden" id="id" value="1">
<div id="divTxt"></div>
</html>
答案 0 :(得分:0)
您的代码适用于我:http://jsfiddle.net/6t8eX/
确保addFormField()
方法全球。如果不是,则内联onClick
将无法找到它。
如果它包含在$(function () { })
,(或任何其他函数体)中,它将不是全局的。