вызов функции jquery из JavaScript не работает - PullRequest
1 голос
/ 12 мая 2011

Я читал похожие посты по этому вопросу, но в настоящее время не работает. Мой немного отличается.

Я вызываю функцию JavaScript addFormField, которая создает динамический элемент ввода в форме. Эта часть отлично работает. В этой функции я вызываю функцию loadData (id) JQuery, чтобы проверить, существует ли идентификатор динамически созданного элемента, но его нет. Правильно ли вызывается loadData для ожидания создания идентификатора входного элемента перед проверкой его создания? Спасибо!

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 голосов
/ 12 мая 2011

Ваш код отлично работает для меня: http://jsfiddle.net/6t8eX/

Просто убедитесь, что метод addFormField() имеет значение global .Если это не так, встроенный onClick не сможет его найти.

Если он заключен в $(function () { }) (или в любое другое тело функции), он не будет глобальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...