我试过男性一般验证函数,但我认为我对lenght validatinon有一个问题:函数在第二个输入上工作但在第一个输入中没有,你可以在jsFiddle上看到:
======> http://jsfiddle.net/RochesterFox/N2HyE/1/
Html:
<input type="text" name="number" class="verify" conditions="requierd numeric"/>
<input type="text" name="number2" class="verify" conditions="requierd lenght:5 numeric"/>
javascript:
function getVal(field, array){
arr = jQuery.grep(array, function (value) {
search = field;
if(value.match(search)) return true;
return false;
});
var vals = arr[0].split(':');
return vals[1];
}
$('.verify').blur(function(){
var conditions = $(this).attr('conditions').split(' ');
var state = [];
if ($.inArray('requierd', conditions) > -1){
if($(this).val() === '') state.push('invalid');
else state.push('valid');
}
else $(this).removeClass('invalid').addClass('valid');
if ($.inArray('numeric', conditions) > -1){
if($.isNumeric($(this).val()) === false) state.push('invalid');
else state.push('valid');
}
if(getVal('lenght', conditions) != ''){
if($(this).val().length < getVal('lenght', conditions)) state.push('invalid');
else state.push('valid');
}
if(($.inArray('invalid', state) > -1) === false){
$(this).removeClass('invalid').addClass('valid');
verif();
}
else{
$(this).removeClass('valid').addClass('invalid');
}
});
function verif(){
var state = 'none';
$('.verify').each(function(){
if($(this).hasClass('invalid')) state = 'invalid';
});
if(state != 'invalid'){
//VALID !
$('body').append('VALIDATED');
}
}
答案 0 :(得分:0)
除了我上面的评论之外,我还为你提供了一个非常快速的解决方案。
如果您真的不想使用某些现有的客户端验证库,那么如果您不想更频繁地运行此类问题,则应该进一步清理代码。
此外,您可能希望在jsfiddle中使用'JsLint'按钮来查找代码中的错误。