我有一个表单,当按下提交并且formfield propBacklink
有一个值时,以下3个字段(X,Y,Z)也被验证。这与他们的价值无关,因为他们是只读的。如果Ajax调用基于Ajax调用中的变量为true或false,则返回Ajax调用。
我的问题是,如何强制验证字段propBacklink
上的字段(X,Y,Z)?
propBacklink: {
required: false,
url: true,
remote: {
url: "backlinkInDB.php",
type: "post"
},
rules: {
CheckNextFields: true
}
},
$.validator.addMethod("CheckNextFields", function( value ) {
this.element($("[name='X']")).validate();
this.element($("[name='Y']")).validate();
this.element($("[name='Z']")).validate();
});
答案 0 :(得分:0)
由于您的OP不包含任何代码,我的答案将不包含代码......
如何强制验证formfield
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT * WHERE { ?s rdf:type <http://turbo.org/procStartTimeMeas> ; <http://purl.obolibrary.org/obo/IAO_0000136> ?something . ?something <http://purl.obolibrary.org/obo/RO_0002223> ?another . ?another rdf:type <http://turbo.org/R2RInstantiation> . ?s <http://purl.obolibrary.org/obo/IAO_0000004> ?o { SELECT ?s (MIN(?o) AS ?earliest) WHERE { ?s rdf:type <http://turbo.org/procStartTimeMeas> ; <http://purl.obolibrary.org/obo/IAO_0000136> ?something . ?something <http://purl.obolibrary.org/obo/RO_0002223> ?another . ?another rdf:type <http://turbo.org/R2RInstantiation> . ?s <http://purl.obolibrary.org/obo/IAO_0000004> ?o } GROUP BY ?s } FILTER ( ?o != ?earliest ) }
的字段(X,Y,Z)onkeyup
?
默认情况下,插件会在提交的propBacklink
上评估整个表单,并在click
和keyup
上单独评估每个字段(在focusout
上click
,radio
和checkbox
。)
由于您希望在触发select
字段时评估一组字段,因此您需要使用the .addMethod()
method为propBacklink
编写新方法(规则)。
在此自定义函数中,您可以使用propBacklink
触发对任何元素的验证。
this.element()
仅将此新规则分配或声明为一个字段this.element(element); // the field being evaluated by the custom method: propBacklink
this.element($('[name="X"]')); // field with name="X"
。 propBacklink
,X
和Y
将根据新自定义规则函数中包含的Z
进行验证。
请注意hundreds of examples posted here以及documentation within the tag Wiki。
修改强>:
我不知道你在this.element()
字段上触发验证的方案是什么意思,用户无法直接控制。
以下内容将检查readonly
,X
和Y
是否有效,如果其中任何一项验证失败,则会返回错误。
Z
(当然,如果你想验证它们,你还需要为$.validator.addMethod("CheckNextFields", function(value, element) {
return this.optional(element) || (this.element($("[name='X']")) && this.element($("[name='Y']")) && this.element($("[name='Z']")));
}, "X, Y, and Z are not valid.");
,X
和Y
分配一些验证规则。否则,你会做什么你触发了吗?)
规则对象的格式也有些混乱。您应该将规则放在Z
对象中。它们由关键字:字段名称的值对和每个字符串的规则列表组成。
rules