从javascript调用jquery函数不起作用

时间:2011-05-11 20:26:16

标签: javascript jquery jquery-selectors

我在此读了类似的帖子,但此时无法工作。我的略有不同。

我调用了一个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 + "&nbsp;&nbsp;<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>

1 个答案:

答案 0 :(得分:0)

您的代码适用于我:http://jsfiddle.net/6t8eX/

确保addFormField()方法全球。如果不是,则内联onClick将无法找到它。

如果它包含在$(function () { }),(或任何其他函数体)中,它将不是全局的。