【发布时间】:2012-12-16 22:49:28
【问题描述】:
我正在使用带有 remoteurl 的 twitter 引导模式在部分视图中加载;在这种情况下,用于重置密码表单。
我正在使用 MVC 模型绑定,并在模型上设置了数据注释,以使客户端验证能够在局部视图中进行。
但是,这不会触发客户端验证。我得到了服务器端验证,这很好,但由于某种原因,当这个表单在模式中时,它不会调用客户端验证。
jquery 验证和引导脚本在包含模式的主页中引用。
不过,我已将 jquery 和 jquery 验证脚本引用添加到局部视图的末尾,这样做确实可以确保调用客户端验证。
为什么需要将这些脚本包含在加载到模式中的部分视图中?
因为它以这种方式工作,我很乐意离开它,但是当我需要动态加载不同的 remoteUrls 时,这样做会给我的 twitter 引导模式带来另一个问题。
当在局部视图中也引用了 jquery 脚本时,模态将第一次触发,但随后出现错误。我知道这是 jquery 引用引起的问题,好像 我删除了它们,虽然我没有得到客户端验证,但我可以多次打开模式而没有任何问题。
我用来调用模态的代码是从互联网搜索中找到的,以尝试让模态刷新传递给它的不同远程 URL 的模态正文。
$('#mymodal').removeData('modal');
$('#mymodal').modal({ remote: self.remoteUrl, keyboard: true });
然后我得到的错误是第二次触发这个 $('#mymodal').modal 为空。但它总是第一次起作用。如上所述,我认为这是因为局部视图中的 jquery 脚本引用。
有人对这两个问题有什么想法吗?
【问题讨论】:
-
也许您只需要在部分加载后触发验证,而不是引用所有脚本?当表单加载时,只需执行
$("#commentForm").validate();之类的操作(也就是说,如果您使用的是 jquery-validate) -
这是有道理的,我应该意识到这将是由于 jquery 不显眼的验证,并且在页面创建时没有绑定到被拉入模态正文的动态内容。这让我有很多事情要做。很快就会确认我的解决方案。
标签: asp.net-mvc twitter-bootstrap jquery-validate modal-dialog