私はいくつかの検証を構築していますが、正しい入力を送信してもまだ有効ではないと表示され、どこが間違っているのかわかりません!
関数は無効な入力では機能しますが、有効な入力では機能しません
JavaScript/jQuery
(function(){
var form = '.contact-form',
alert = '.alert',
fieldWrap = '.control-group',
errorMsg = '.error-message',
error = 'error',
show = 'show',
hide = 'hide';
var textField = function(){$(field).val() !== (regEx); return false};
var select = function(){$(field + ' option:selected').val() === regEx; return false};
var validate = function(ifParam,field,regEx,e){
if(ifParam()){
$(field).parents(fieldWrap).addClass(error).find(errorMsg).addClass(show);
return false;
}
else{
$(field).parents(fieldWrap).removeClass(error).find(errorMsg).addClass(hide);
return true;
}
};
var valid = function(e){
validate(textField,'#first-name' ,/^[a-zA-Z]$/,e);
validate(textField,'#last-name' ,/^[a-zA-Z]$/,e);
validate(textField,'#contact-number' ,/^[a-zA-Z]$/,e);
validate(textField,'#email' ,/^[a-zA-Z]$/,e);
validate(textField,'#landline-number',/^[a-zA-Z]$/,e);
validate(textField,'#postcode' ,/^[a-zA-Z]$/,e);
validate(select ,'#title' ,'select',e);
return true;
};
$(document).on('submit',form,function(e){
if(!valid()){
$(alert).addClass(show);
e.preventDefault();
e.stopPropagation();
}
else{
$(this).unbind('submit').submit();
}
});
})();