1

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

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

使用来自 github 的最新 jquery-validation 使用 jquery 1.4.4 和 jquery 1.5.1 进行测试。

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

尝试提交表单,同时将 cityfield 留空。在第一种情况下什么都不会发生。您将看到在第二种情况下触发的验证消息。

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

4

2 回答 2

1

我将此作为问题发布在 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 以解决此问题。

于 2011-03-11T18:34:38.367 回答
0

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
  }

});

希望能帮助到你

于 2013-03-06T09:38:46.587 回答