我们如何要求用户在文本输入中放置特定数字并根据确切数字(或任何值)进行验证。在这种情况下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]。还有其他方法或技术吗?
谢谢大家。
答案 0 :(得分:1)
您的代码......
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
}
}
});
DEMO:http://jsfiddle.net/wxfaborn/
顺便说一句:你不能在001
方法中使用字符串(range
)或模式......它只能查找一系列数字,在这种情况下来自{{ 1}}最多1
。
修改强>:
否则,您可以使用1
方法(additional-methods.js文件的一部分)和regex作为参数。或者您可以使用the .addMethod()
method编写自己的函数,从而创建自定义规则。
以下是pattern
的简单演示。
.addMethod()
答案 1 :(得分:0)
为什么你要做的只是将用户输入与“001”进行比较时,你必须使用这个验证插件?只需创建自己的验证插件即可完成所需的操作。
$.fn.validate001 = function(){
if(this.val()=="001")return true;
else return false;
};
$("#input").validate001();
如果您需要“001”开头(但之后可能有数字),请使用:
$.fn.validate001 = function(){
if(this.val().indexOf("001")==0)return true;
else return false;
};
$("#input").validate001();
如果“001”需要在字符串的末尾使用:
$.fn.validate001 = function(){
if(this.val().indexOf("001")==this.val().length-4)return true;
else return false;
};
$("#input").validate001();
我认为不需要使用插件来实现这么简单的事情。