2011-05-11 139 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() { })(或任何其他函數體中),它將不是全局的。