【问题标题】:Generic form validation using a class for input fields使用输入字段类的通用表单验证
【发布时间】:2017-12-20 09:50:41
【问题描述】:

您好,我想知道您能否就以下主题提供一些信息:我想用 javascript 创建一个通用表单验证类 并为我的输入字段分配适当的类名以进行验证检查。

我怎样才能做到这一点? 我的意见:

<input type="text" class="alphabeticalValidation" name="Vvehicle"/>

我的验证码:

    function fieldValadation() {
    var errMsg = "";
    var isNumber = $(".numericalValidation");
    var isWord = $(".alphabeticalValidation");
    var regex0 = /^[0-9]+$/;
    var regexA = /^[A-Za-z]+$/;

    // check to see if fields are not empty - if so test the data type
    if (isNumber.length != 0 && isWord.length != 0 ) {


        if (isNumber != regex0) {
            errMsg += "Field can only contain numerical charaters \n"
        }
        if (isWord != regexA) {
            errMsg += "Field can only contain alphabetical characters \n"
        }
    }
    else {
        errMsg += "Fields cannot be empty \n";   
    }
    return errMsg;
}

【问题讨论】:

  • 使用RegExp#test检查字符串是否在模式中。
  • 对于像 RegExp(.test) 这样类似的类,你能提供一个例子吗?
  • MDN
  • @Tushar ,不幸的是,它似乎不能满足我的需要,因为我使用了一个似乎很难用正则表达式测试的类,我也尝试过 isNan 这似乎让我更接近但后来天气我在该字段中有一个值,或者它不显示消息。

标签: javascript jquery regex validation


【解决方案1】:

您可以通过使用类进行验证来轻松实现它。您需要做的只是更新您的代码,如下所示 -

$(".numericalValidation").each(function(){
    var isNumber = $(this).val();
    var errMsg = '';
    if (isNumber.length != 0 && isWord.length != 0 ) {
        if (isNumber != regex0) {
            errMsg = "Field can only contain numerical charaters \n"
        }
        if (isWord != regexA) {
            errMsg = "Field can only contain alphabetical characters \n"
        }
    }
    else {
        errMsg = "Fields cannot be empty \n";   
    }
    $(this).parent().find('label').html(errMsg);
 });

【讨论】:

  • 谢谢你,但不幸的是它不适用于我的应用程序,但如果你只用这个验证一个表单,它会很好用。对于我的使用,多个表单应该能够使用相同的 js 文件进行验证。
【解决方案2】:

我通过在调用类后添加.val() 找到了我的查询的解决方案,这意味着我可以将类分配给多个应该验证特定条件的输入字段。

function fieldValadation() {

    var errmsg = '';    
    var Vehicle = $(".alphabeticalValidation").val();
    var isNumber = $(".numericalValidation").val();

    if (Vehicle != "" && isNumber != "") {
        if (!isNaN(Vehicle)) {
            errmsg += "Field can only contain letters \n";
        }
        if (isNaN(isNumber)) {
            errmsg += "Field can only contain numbers \n";
        }
    }
    else {
        errmsg += "Field cannot be empty \n";
    }

    return errmsg;
}

【讨论】:

    猜你喜欢
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2021-04-13
    • 1970-01-01
    • 2014-08-02
    • 2018-11-13
    • 1970-01-01
    相关资源
    最近更新 更多