我有一个简单的keyup函数用于类“keyup-an”,用于表单上的keyup验证。这个班有大约10个领域。但是在帖子之后,我将字段添加到表单中。但绿色和红色的背景消失了,因为它不是关键。我如何做这样的事情,每个都会根据页面加载时的结果为背景着色
jQuery(document).ready(function() {
$('.keyup-an').each(function(index) {
var inputVal = $(this).val();
var numericReg = /^[a-zA-Z0-9_ ]{2,30}$/;
if(!numericReg.test(inputVal)) {
$(this).css('background', '#FAC3C3');
$(this).after('<span class="error error-keyup-1">Please use letters or numbers only</span>');
}
else {
$(this).css('background', 'lightgreen');
}
});
$('.keyup-an').keyup(function() {
$('span.error-keyup-1').hide();
var inputVal = $(this).val();
var numericReg = /^[a-zA-Z0-9_ ]{2,30}$/;
if(!numericReg.test(inputVal)) {
$(this).css('background', '#FAC3C3');
$(this).after('<span class="error error-keyup-1">Please use letters or numbers only</span>');
}
else {
$(this).css('background', 'lightgreen');
}
});
答案 0 :(得分:2)
我想这就是你想要的......
$(document).ready(function() {
// Each
$('.keyup-an').each(function() {
// Validate
validate(this);
// Key up
$(this).keyup(function(){
// Validate
validate(this);
});
});
});
// Validate Function
function validate(element) {
var obj = $(element);
if(!/^[a-zA-Z0-9_ ]{2,30}$/.test(obj.val())) {
// Invalid
obj.css('background', '#FAC3C3');
if(!obj.next().hasClass('error'))
{ obj.after('<span class="error error-keyup-1">Please use letters or numbers only</span>'); }
} else {
// Valid
obj.css('background', 'lightgreen');
if(obj.next().hasClass('error'))
{ obj.next().remove(); }
}
}
答案 1 :(得分:1)
$('.keyup-an').each(function(index) {
var inputVal = $(this).val();
var numericReg = /^[a-zA-Z0-9_ ]{2,30}$/;
if(!numericReg.test(inputVal)) {
$(this).css('background', '#FAC3C3');
$(this).after('<span class="error error-keyup-1">Please use letters or numbers only</span>');
}
else {
$(this).css('background', 'lightgreen');
}
});
答案 2 :(得分:0)
您应该像这样定义您的keyup事件。顺便说一下,如果您的元素表单是以dinamically方式创建的,则必须使用.on()
绑定事件jQuery(document).ready(function() {
$('.keyup-an').each(function(index) {
$(this).keyup(function() {
var inputVal = $(this).val();
var numericReg = /^[a-zA-Z0-9_ ]{2,30}$/;
if(!numericReg.test(inputVal)) {
$(this).css('background', '#FAC3C3');
$(this).after('<span class="error error-keyup-1">Please use letters or numbers only</span>');
}
else {
$(this).css('background', 'lightgreen');
}
});
});
}