2011-05-11 105 views
1

我读过类似的帖子,但在这个时候失败。我的情况略有不同。从javascript调用jquery函数不工作

我调用一个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> 

回答

0

您的代码工作正常,我:http://jsfiddle.net/6t8eX/

只要确保该addFormField()方法是全球。如果不是,内嵌onClick将无法​​找到它。

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