jQuery验证远程验证的缓存问题解决方案

jQuery验证远程验证的缓存问题解决方案
最近,这个项目一直在使用jQuery验证来检查,结合自举和jQuery表单,感觉很好,但是远程验证的缓存问题让我头疼了很长时间,就像放弃插件一样。

例子如下:

现有学校、年级、班级实体

同一所学校没有同一年级,同一年级没有同一个班。

以同一学校的同一年级为例,在验证中采用远程教学。

js
复制代码代码如下所示:
gradeid :{
要求:真实,
最小值:0,
远程:{
网址:grademanager checkgrade。动作
类型:邮政
DataType:JSON
数据:{
gradeid:函数(){
返回$(# gradeid )瓦迩();
},
身份:函数(){
返回$(#身份)的瓦迩();
}
}
}
}

HTML
复制代码代码如下所示:

学校

<:选择身份列表=学校listkey =身份
listvalue =schoolnameheaderkey = 1 请选择学校HeaderValue =>

等级

<:选择gradeid列表=成绩listkey =gradeid
listvalue =gradenameheaderkey = 1 请选择年级HeaderValue =>
现在有测试学校1所,测试学校2所,两所学校,其中测试学校1是二年级一年级和二年级。

理论上,如果选择一所新学校,如果学校选择了1的测试学校,那么在选择小学一年级和两年级的时候,远程考试就错了。

事实上,第一次手术的结果是正确的。
但是,如果我们在这个时候再次改变学校,例如,选择测试学校2,因为缓存问题,验证插件将不会返回到新的远程验证,并将返回到最后验证的结果直接,所以会有一个错误,如产卵。
这不是最难接受的,更严重的问题是,如果第一选择考试,小学一年级和2所学校,由遥控器验证,然后选择考试学校1,远程验证还是不一样的,所以学校在验证中有同样等级的失败。
因此,各种查询解决方案是

有一种说法是远程缓存是被添加到远程的,但是测量并不能解决问题。

尝试绑定onchange事件明确学校gradeid下拉框的值,仍无法解决的问题

查验证API,发现有效的方法。()可以触发验证积极,但由于缓存问题,远程还没有重新验证

我们还看了验证的源代码,发现有一个previousvalue,如果有价值,它会直接返回先前的确认
因此,尝试清除这个值的值。
复制代码代码如下所示:
$(#身份)。变化(函数(){)
$(# gradeid)。RemoveData(previousvalue );
});

成功地解决了这个问题
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部