jquery 验证在 IE 上默默被忽略 - 使用 Rails ujs 驱动程序时 + jquery 验证 +阿贾克斯形式

发布于 2024-10-20 11:33:22 字数 652 浏览 1 评论 0原文

我不清楚问题出在 ujs 驱动程序还是 jquery-validate 插件上...

当使用 jquery UJS 驱动程序(最新的,来自 github)+ jquery-validate 插件(最新的,来自 github)+ ajax 表单(通过data-remote 标签),验证规则将被默默忽略。仅在 IE 8 中,chrome 和 FF

使用 jquery 1.4.4 和 jquery 1.5.1 进行了良好测试,使用了 github 上最新的 jquery-validation。

这是一个简单的例子: http://avioing.com/validate/example.htmlhttp://avioing.com/validate/example_no_ujs.html

尝试在离开 cityfield 时提交表单空的。第一种情况不会发生任何事情。您将看到在第二种情况下触发的验证消息。

这两个文件之间的唯一区别是我从后一个文件的表单中删除了“data-remote”标签,现在触发了验证。

not clear to me whether the problem is with the ujs driver or the jquery-validate plugin...

when using jquery UJS driver (most recent, from github) + jquery-validate plugin (most recent, from github) + ajax form (via the data-remote tag), the validation rules are silently ignored. only in IE 8, chrome and FF work fine

tested with jquery 1.4.4 and jquery 1.5.1, using most recent jquery-validation from github.

here is a simple example:
http://avioing.com/validate/example.html and
http://avioing.com/validate/example_no_ujs.html

try submitting the form while leaving the cityfield empty. nothing will happen in the first case. you will see a validation message triggered in the second case.

the only difference between the two files is that i removed "data-remote" tag from the form in the latter file, and now validation is triggered.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

萤火眠眠 2024-10-27 11:33:23

我将此作为问题发布在 jquery-ujs/github 上,在 jquery-ujs 团队的帮助下,我们发现了一个涉及 IE << 的问题。 9、jquery 和 jquery-ujs,以及 IE 与其他浏览器中处理提交事件冒泡的方式。

jquery-ujs 团队开发了一种解决方法(请参阅此处的讨论 https://github.com /rails/jquery-ujs/pull/123),但截至撰写本文时,修复尚未被拉入 jquery-ujs 树中。问题是该问题是否应该在 jquery 或 jquery-ujs 中解决。

同时,我相信您可以根据 github 上的拉取请求手动修补您的 Rails.js 以解决此问题。

I posted this as an issue on jquery-ujs/github, and with the help of the jquery-ujs team we identified an issue which involves IE < 9, jquery, and jquery-ujs, and the way submit event bubbling is handled in IE vs. other browsers.

the jquery-ujs team developed a work-around (see discussion here https://github.com/rails/jquery-ujs/pull/123), but as of this writing the fix has not yet been pulled into the jquery-ujs tree. the concern is whether the issue should be fixed in jquery or jquery-ujs.

in the meantime, i believe that you can manually patch your rails.js to work around this issue based on the pull request on github.

双手揣兜 2024-10-27 11:33:23

teohm 在 上发布了解决方案http://teohm.github.com/blog/2011/05/25/using-jquery-validation-in-rails-remote-form/

$('#submit_form').validate({

  submitHandler: function(form) {
    // .. do something before submit ..
    $.rails.handleRemote( $(form) );  // submit via xhr
    //form.submit();                  // don't use, it submits the form directly
  }

});

希望有帮助

Solution was posted by teohm on http://teohm.github.com/blog/2011/05/25/using-jquery-validation-in-rails-remote-form/

$('#submit_form').validate({

  submitHandler: function(form) {
    // .. do something before submit ..
    $.rails.handleRemote( $(form) );  // submit via xhr
    //form.submit();                  // don't use, it submits the form directly
  }

});

Hope it helps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文