Javascript jQuery在填写上一个表单字段时,在KeyUp上验证下三个表单字段
我有一个表单,当按下submit并且formfieldJavascript jQuery在填写上一个表单字段时,在KeyUp上验证下三个表单字段,javascript,jquery,ajax,jquery-validate,Javascript,Jquery,Ajax,Jquery Validate,我有一个表单,当按下submit并且formfieldpropBacklink有一个值时,以下3个字段(X、Y、Z)也会被验证。这与它们的值无关,因为它们是只读的。Ajax调用根据Ajax调用中的变量返回true或false 我的问题是,如何在formfieldpropBacklink的keyup上强制验证字段(X、Y、Z) propBacklink:{ 必填项:false, 网址:对, 远程:{ url:“backlinkInDB.php”, 类型:“职位” }, 规则:{ CheckNex
propBacklink
有一个值时,以下3个字段(X、Y、Z)也会被验证。这与它们的值无关,因为它们是只读的。Ajax调用根据Ajax调用中的变量返回true或false
我的问题是,如何在formfieldpropBacklink
的keyup上强制验证字段(X、Y、Z)
propBacklink:{
必填项:false,
网址:对,
远程:{
url:“backlinkInDB.php”,
类型:“职位”
},
规则:{
CheckNextFields:true
}
},
$.validator.addMethod(“CheckNextFields”,函数(值){
元素($(“[name='X']”).validate();
元素($(“[name='Y']”)。验证();
元素($(“[name='Z']”).validate();
});代码>由于您的OP不包含任何代码,因此我的答案将不包含代码
如何强制验证formfieldpropBacklink
的字段(X、Y、Z)onkeyup
默认情况下,插件在submit的点击
上评估整个表单,在键控
和聚焦输出
上分别评估每个字段(在点击
查看电台
,复选框
,以及选择
)
由于要在触发propBacklink
字段时计算一组字段,因此需要使用为propBacklink
编写新方法(规则)
- 在这个自定义函数中,您可以使用
this.element()
触发对任何元素的验证
- 仅将此新规则分配或声明给一个字段,
propBacklink
X
、Y
和Z
将根据新自定义规则函数中包含的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
对象中。它们由字段名的key:value对和每个字段的规则列表组成
$('#yourform').validate({
rules: {
propBacklink: {
// rules for propBacklink
required: false, // <- superfluous (default)
url: true,
remote: {
url: "backlinkInDB.php",
type: "post"
},
CheckNextFields: true
},
X: {
// rules for X
},
Y: {
// rules for Y
},
Z: {
// rules for Z
},
....
},
....
$('yourform')。验证({
规则:{
propBacklink:{
//反向链接规则
必需:false,//如果代码缺失,则无法运行代码段。换句话说,如果没有相关的HTML,JavaScript是无用的。编辑以删除代码段。您的问题不清楚。默认情况下,验证也会在keyup
和focusout
上触发。您是否询问如何基于so触发验证其他活动?哦,对不起。希望这个添加内容能更好地解释:事实上,当前的表单字段焦点是在keyup上验证的。但我也希望字段X、Y、Z在表单字段A的keyup上验证。我有一些想法,但您需要展示您的代码尝试。因此,您没有按照我第一条注释的建议添加相关HTML,而是删除了所有的代码?只是在没有其他任何东西的情况下转储一个功能性请求并不是一个好问题。请参阅:谢谢你的建议!经过数小时的搜索和玩转,我找到了上面的代码,但不幸的是,这还不起作用。我做错了什么?@Peps,仍然不清楚你在做什么,但我编辑了我的答案,以向你展示什么您的自定义方法应该如下所示。
$('#yourform').validate({
rules: {
propBacklink: {
// rules for propBacklink
required: false, // <- superfluous (default)
url: true,
remote: {
url: "backlinkInDB.php",
type: "post"
},
CheckNextFields: true
},
X: {
// rules for X
},
Y: {
// rules for Y
},
Z: {
// rules for Z
},
....
},
....