我们如何要求用户在文本输入中放置一个特定的数字并针对确切的数字(或任何值)进行验证。在这种情况下,为001(帐号的起始数字)。值001是一种确定用户是否有可能继续进行帐户操作的方法。

我正在使用jQuery.validate-http://jqueryvalidation.org

具有以下内容:



为了验证,我有:

$("#form1").validate({
messages: {
acn_01: {
     required: 'Please enter a valid account number',
     range: [001,001]
     }
}
});


范围似乎不适用于[001]或[001,001]。还有其他方法或技术可以做到这一点吗?

谢谢大家

最佳答案

您的代码...

messages: {  // <- MESSAGES option
    acn_01: {
        required: 'Please enter a valid account number',
        range: [001,001]  // <- this is not a message
    }
}


问题是您正在尝试将规则参数放入messages选项。 messages选项用于自定义消息,而rules选项用于声明规则/参数。

$("#form1").validate({
    rules: {  // <- rules option
        acn_01: {
            required: true,   // <- rule: parameter
            range: [1, 1] // <- rule: parameter
        }
    },
    messages: { // <- messages option
        acn_01: {
            required: 'Please enter a valid account number', // <- custom message
            range: 'Please enter the number {0}'  // <- custom message
        }
    }
});


演示:http://jsfiddle.net/wxfaborn/

顺便说一句:您不能在001方法内使用字符串(range)或模式...它只是在寻找一个数字范围,在这种情况下,范围是从11

编辑:

否则,您可以将pattern方法(additional-methods.js文件的一部分)与regex一起用作参数。或者,您可以使用the .addMethod() method编写自己的函数,从而创建自定义规则。

这是.addMethod()的非常简单的演示。

jQuery.validator.addMethod("myRule", function(value, element, params) {
    return this.optional(element) || value == params[0];
}, "Please enter the correct value of {0}");


$("#form1").validate({
    rules: {
        acn_01: {
            required: true,
            myRule: ["001"]
        }
    }, ....


http://jsfiddle.net/wxfaborn/1/

关于javascript - jQuery验证插件需要确切的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28635385/

10-13 01:47