2011-03-31 56 views
0

我在我的远程表单中使用JQuery工具验证器在rails.js中,如果($('form')。data('validator'))添加了这个条件。 checkValidity())检查表单验证,如果它的返回值是真的,则返回true,否则不执行任何操作。它在Firefox 3中工作正常,但在最新版本的Firefox和Chrome之后,它会跳过验证并提交表单。Rails 3 + jQuery - 远程表单,不按要求工作

默认此

$('form[data-remote]').live('submit', function (e) { 
     $(this).callRemote(); 
     e.preventDefault(); 
    }); 

我进行验证修复

$('form[data-remote]').live('submit', function (e) { 
if($('form').data('validator').checkValidity()) 
    { 
     $(this).callRemote(); 
    } 
    e.preventDefault(); 
}); 

这是有事情做与在浏览器中HTML5功能的最新支持。如果是的话,它是什么解决方案。紧急需要帮助谢谢。

回答

0

一旦我的形式是通过远程调用加载比$('form').attr('novalidate', 'novalidate');重视这个属性忽略浏览器的HTML5特定验证..

$('form[data-remote]').live('submit', function (e) { 
    if ($(this).data('validator')) 
     { 
       if ($(this).data('validator').checkValidity()) 
       { 
        $(this).callRemote(); 
       } 
     } 
     else 
     { 

       $(this).callRemote(); 
     } 
     e.preventDefault(); 
}); 
0

我知道这不完全是一个答案,其实不是一个答案可言,但是...我有非常相同的问题,更糟的是,jqueryTools本身是有问题的

。请注意,JQuery Tools Validation Demo在FF4上不起作用。

有一个开放的issue in git hub jquery tools

+0

是的,这是它...的解决方法现在的问题尝试在初始化时包含.attr(“novalidate”,“novalidate”)。例如$(“。validationForm”)。validator()。attr(“novalidate”,“novalidate”) – Beccari 2011-04-01 17:12:58