首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery验证中的额外参数

jquery验证中的额外参数
EN

Stack Overflow用户
提问于 2012-08-28 09:48:30
回答 1查看 2.2K关注 0票数 0

我正在以某种复杂的形式使用jquery验证。验证规则是通过为form字段分配类而在代码中添加的,但我似乎无法让它使用额外的参数。恐怕我在jQuery文档方面没有什么进展。

下面是一个例子,说明什么对我有用,什么对我没有用,这个例子显然不是很有用。

工作(显示除了a之外的任何错误)

(伪码)

代码语言:javascript
运行
复制
$fieldXclasses = "myrule";

生成的HTML

代码语言:javascript
运行
复制
<input id="x" name="x" value="fromdatabase" class="myrule error" type="text">

js方法:

代码语言:javascript
运行
复制
jQuery.validator.addMethod("myrule", function(value, element) { 
    return this.optional(element) || /^a$/.test(value);
}, "Please enter 'a'");  

它有"error“,因为额外的类‘error’显然不是a,所以它失败了"myrule”函数。当我在字段中键入a时,它将按预期更改为class="docnmr valid"。我由此得出的结论是,我的验证设置适用于简单的情况,所以我不需要在加载验证插件时寻找错误。

不工作:

(伪码)

代码语言:javascript
运行
复制
$fieldXclasses = "myrule:1";

生成的HTML

代码语言:javascript
运行
复制
<input id="x" name="x" value="fromdatabase" class="myrule:1 valid" type="text">

js方法:

代码语言:javascript
运行
复制
jQuery.validator.addMethod("myrule", function(value, element,param) { 
    return this.optional(element) || /^a$/.test(value);
}, "Please enter 'a'");  

现在,初始状态从一开始就错了:它应该是错误而不是有效,因为它不符合要求。我假设类myrule:1没有被解析为调用以1作为参数的myrule函数。但是我认为这是添加参数的方法,尽管我在jquery文档中很难找到正确的方法。

有人能教我怎么添加额外的参数吗?

背景:最终的目标是使用另一个字段值作为参数,因为它们彼此依赖。另一种选择当然是忘记参数和规则中的this对象以找到正确的字段。但不确定这是否可行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-28 15:15:50

您有两个选择,两个选项都不涉及使用class属性。您只需在输入中指定一个属性和类似于myrule="1"的值,这将满足您的需要:

代码语言:javascript
运行
复制
<input id="x" name="x" value="fromdatabase" myrule="1" type="text"> 

或者,在您的验证调用中,您可以指定如下规则:

代码语言:javascript
运行
复制
$('form').validate({
 ...
 rules: {
    ...
    x: {
       myrule: 1
    },
    ...
 }
});

有关第一种方法的简单示例,请参见此处:http://jsfiddle.net/ryleyb/2E6k9/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12156713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档