如果使用 jQuery 1.7+,则需要为动态创建的输入委托,然后使用on
$(document).on('blur','#encdomlocal input:nth-child(2)',function() {
否则,您可以使用委托jquery 1.6 及更低版本
$(document).delegate('#encdomlocal input:nth-child(2)','blur',function() {
document
可以替换为任何父元素
更新:
if (REGEX.test($(this).val())) { //<-- I don't know what you were testing but using $(this) works here
$(this).removeClass();
$(this).addClass("good");
}
else {
$(this).removeClass();
$(this).addClass("bad");
}
这是更新的小提琴http://jsfiddle.net/9DW8f/9/
你正在使用
if (REGEX.test($("#encdomlocal input:nth-child(2)").val()))
它正在返回一组元素,因此您没有测试触发blur
事件的当前文本框
jQuery 对象:包装集:选择器返回一个称为“包装集”的 jQuery 对象,它是一个类似数组的结构,包含所有选定的 DOM 元素。您可以像数组一样遍历包装集或通过索引器访问单个元素(例如 $(sel)[0])。更重要的是,您还可以对所有选定的元素应用 jQuery 函数。<
如果您要使用相同的正则表达式,您可以通过用逗号分隔来添加另一个选择器
$("#encdomlocal").on("blur", "input:nth-child(2),otherSelector",//<--- use this if regex for validation is the same
如果您使用的是新的正则表达式,您可以使用
$(document).on('blur','otherSelector',function() {
// validation code goes here. You can pretty much copy the other one and change the regex to what you need
});