0

私はいくつかの検証を構築していますが、正しい入力を送信してもまだ有効ではないと表示され、どこが間違っているのかわかりません!

関数は無効な入力では機能しますが、有効な入力では機能しません

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();
    }
});

})();

4

0 に答える 0