从 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 + " <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>
I read similar posts on this but fails to work at this time. Mine is slightly different.
I call a javascript function addFormField which creates a dynamic input element within a form. This part works fine. Within that function I call the JQuery function loadData(id) to test if the id of the dynamically created element exists but it does not. Is loadData being called correctly to wait $ for the input element id to be created before checking if it's created? Thanks!
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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的代码对我来说效果很好: http://jsfiddle.net/6t8eX/
只需确保
addFormField()
方法是全局。如果不是,内联onClick
将无法找到它。如果它被包装在
$(function () { })
中(或任何其他函数体中),那么它就不是全局的。Your code works fine for me: http://jsfiddle.net/6t8eX/
Just make sure that the
addFormField()
method is global. If it isn't, the inlineonClick
won't be able to find it.If it is wrapped in
$(function () { })
, (or in any other function body) it won't be global.