2011-03-31 57 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