当填充上一个表单字段时,jQuery验证后续3个表单字段onkeyup

时间:2017-06-29 20:31:34

标签: javascript jquery ajax jquery-validate

我有一个表单,当按下提交并且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();

});

1 个答案:

答案 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上评估整个表单,并在clickkeyup 上单独评估每个字段(在focusoutclickradiocheckbox。)

由于您希望在触发select字段时评估一组字段,因此您需要使用the .addMethod() methodpropBacklink编写新方法(规则)。

  • 在此自定义函数中,您可以使用propBacklink触发对任何元素的验证。

    this.element()
  • 仅将此新规则分配或声明为一个字段this.element(element); // the field being evaluated by the custom method: propBacklink this.element($('[name="X"]')); // field with name="X" propBacklinkXY将根据新自定义规则函数中包含的Z进行验证。

  • 请注意hundreds of examples posted here以及documentation within the tag Wiki

修改

我不知道你在this.element()字段上触发验证的方案是什么意思,用户无法直接控制。

以下内容将检查readonlyXY是否有效,如果其中任何一项验证失败,则会返回错误。

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."); XY分配一些验证规则。否则,你会做什么你触发了吗?)

规则对象的格式也有些混乱。您应该将规则放在Z对象中。它们由关键字:字段名称的值对和每个字符串的规则列表组成。

rules