代码改变世界

knockoutjs with绑定导致unobtrusive validation失效的问题

  山不转水转...  阅读(299)  评论(0编辑  收藏  举报

如果最初的时候with绑定的对象是空的,那么with绑定内部的unobtrusive validation规则在提交的时候无法生效,无法进行验证。

解决办法:

在提交的时候(或者with绑定的对象非空值以后),先清除form对象的'validation'的data:

$.removeData($form[0], 'validator');

然后调用unobtrusive validation的parse函数重新对form内的控件进行解析。

$.validator.unobtrusive.parse($form[0]);

再调用valid()函数就可以正常验证了。

 

with绑定的对象为空的时候,还会导致form内button(或其他控件)的jquery的事件处理代码不能正常触发。需要把button移动到with绑定范围之外。

 

 knockoutjs 对with 的说明:

If the expression you supply evaluates to null or undefined, descendant elements will not be bound at all, but will instead be removed from the document.

If the expression you supply involves any observable values, the expression will be re-evaluated whenever any of those observables change. Then, descendant elements will be cleared out, and a new copy of the markup will be added to your document and bound in the context of the new evaluation result.

编辑推荐:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
历史上的今天:
2009-09-02 【转】排序TreeView的节点
点击右上角即可分享
微信分享提示