Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 使用rails ujs驱动程序+;jquery验证&x2B;ajax表单_Ruby On Rails 3_Jquery Validate_Ujs - Fatal编程技术网

Ruby on rails 3 使用rails ujs驱动程序+;jquery验证&x2B;ajax表单

Ruby on rails 3 使用rails ujs驱动程序+;jquery验证&x2B;ajax表单,ruby-on-rails-3,jquery-validate,ujs,Ruby On Rails 3,Jquery Validate,Ujs,我不清楚问题出在ujs驱动程序还是jquery验证插件上 当使用jquery UJS驱动程序(最近的,来自github)+jquery验证插件(最近的,来自github)+ajax表单(通过数据远程标记)时,验证规则会被默默忽略。只有在IE 8中,chrome和FF才能正常工作 使用jQuery1.4.4和jQuery1.5.1进行测试,使用来自github的最新jquery验证 下面是一个简单的例子: 和 尝试提交表单,同时保留cityfield为空。在第一种情况下不会发生任何事情。您将看到

我不清楚问题出在ujs驱动程序还是jquery验证插件上

当使用jquery UJS驱动程序(最近的,来自github)+jquery验证插件(最近的,来自github)+ajax表单(通过数据远程标记)时,验证规则会被默默忽略。只有在IE 8中,chrome和FF才能正常工作

使用jQuery1.4.4和jQuery1.5.1进行测试,使用来自github的最新jquery验证

下面是一个简单的例子: 和

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


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

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

jQueryUJS团队开发了一个变通方法(见这里的讨论),但在撰写本文时,该修复还没有被拉入jQueryUJS树中。问题在于该问题是否应该在jquery或jquery ujs中修复


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

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

jQueryUJS团队开发了一个变通方法(见这里的讨论),但在撰写本文时,该修复还没有被拉入jQueryUJS树中。问题在于该问题是否应该在jquery或jquery ujs中修复


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

解决方案由teohm发布于


希望有帮助

解决方案由teohm发布在

希望能有帮助

$('#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
  }

});