Предисловие: я уверен, что это невероятно просто, но я искал этот сайт и сайт jQuery и не могу найти правильный поисковый запрос, чтобы получить ответ - извините за мое невежество!
Я добавляю дополнительные поля формы, используя функцию jjuery ajax, и мне нужно затем применить дополнительные функции ajax к этим полям, но не могу заставить jQuery отслеживать их в полях формы fly.
Как мне заставить jQuery использовать эти новые поля?
$(document).ready(function() {
$('#formField').hide();
$('.lnk').click(function() {
var t = this.id;
$('#formField').show(400);
$('#form').load('loader.php?val=' + t);
});
//This works fine if the field is already present
var name = $('#name');
var email = $('#email');
$('#uid').keyup(function () {
var t = this;
if (this.value != this.lastValue) {
if (this.timer) clearTimeout(this.timer);
this.timer = setTimeout(function () {
$.ajax({
url: 'loader.php',
data: 'action=getUser&uid=' + t.value,
type: 'get',
success: function (j) {
va = j.split("|");
displayname = va[1];
mail = va[2];
name.val(displayname);
email.val(mail);
}
});
}, 200);
this.lastValue = this.value;
}
});
});
Таким образом, если функция присутствует на основной html-странице, функция работает, но если она поступает с помощью функции $ .load, она этого не делает - предположительно, потому что $ (document) .ready уже запущена.
Я попробовал:
$(document).ready(function() {
$('#formField').hide();
$('.lnk').click(function() {
var t = this.id;
$('#formField').show(400);
$('#form').load('loader.php?val=' + t);
prepUid();
});
});
function prepUid(){
var name = $('#name');
var email = $('#email');
$('#uid').keyup(function () {
snip...........
Но, похоже, это не сработало ...