Причина, по которой ваш код не работает для динамически добавляемых входных данных, заключается в том, что когда вы делаете что-то вроде:
$(selector).blur(myFunction);
jQuery просматривает каждый элемент, который соответствует selector
в этой точке , и добавляет обработчик события, который запускается myFunction
при возникновении события blur
, которое происходит с элементом. Это означает, что любые элементы, которые соответствуют selector
, добавленному после этой строки кода, не будут связаны.
Чтобы обойти эту проблему, jQuery представил живую функцию в 1.3. Как гласит документация:
Связывает обработчик с событием (например, щелчком) для всех текущих и будущих элементов. Может также связывать пользовательские события.
К сожалению, на данный момент jQuery не поддерживает событие blur
с функцией live
.
Ваши варианты тогда:
A) Запускайте код привязки каждый раз, когда добавляете новые входные данные.
B) Используйте плагин livequery , который основан на live
и поддерживает размытие.
Лично я бы пошел с А.