Im пытается назначить событие onKeyUp всем входам в форме, используя закрытие. массив fields
содержит все имена полей, для которых требуется назначенное им событие. Массив ajaxFields
содержит имена полей (из массива fields
), который требует проверки ajax.JavaScript onKeyUp закрывается с таймаутом
function createEvents(fields,ajaxFields) {
for(var x=0;x<fields.length;x++) {
$('input[name='+fields[x]+']').keyup(function(field) {
//assign an onKeyUp event
return function() {
//some code using variable 'field' and array 'ajaxFields'
}(fields[x]));
}
}
Я хотел бы функцию OnKeyUp быть казнен вторым после того, как пользователь закончит печатать в этой области, InstEd в каждый раз, когда клавиша вверх (OnKeyUp). это сэкономит много места для обработки, не говоря уже о вызовах ajax. До сих пор им с помощью этого:
clearTimeout(timer);
timer = setTimeout('validate()' ,1000);
Вы могли заметить, что функция validate()
не существует, и то, потому что я не знаю, как обернуть замыкания внутри именованной функции, и им даже не уверен, что я должен ...
Так как я могу это сделать?
EDIT: вот ток fiddle
Спасибо за ваш ответ, вы можете показать как совместить это с закрытием? –
@webdeskil: снова проверьте ответ, я добавил еще код. –
Я не уверен, почему, но он не работает. И я думаю, что вам не хватает закрывающего '' 'права? –