2010-05-12 115 views
5

好吧,我使用的是umbraco論壇模塊,並且在評論表單上使用了jquery validate插件。 問題是我已經使用UserControl在同一頁面上添加了搜索按鈕,搜索提交按鈕會觸發註釋表單提交驗證。jQuery驗證插件:當提交處理程序處理程序時禁用指定提交按鈕的驗證

我已經做了一些研究,並將'取消'css類添加到按鈕。這繞過了第一個驗證問題,但它仍然屬於'submitHandler'。已閱讀源代碼並找到一種方法來檢測搜索按鈕是否觸發提交。然而,沒有一種很好的方式來繞過處理程序。

我目前使用醜陋的方式來做到這一點:創建JavaScript錯誤!我想知道更好的方法來完成這項工作。非常感謝!

順便說一句,我目前使用的:

submitHandler: function (form) { 

      $(form).find(':hidden').each(function() { 
       var name = $(this).attr('name'); 
       if (name && name.indexOf('btnSearch') === name.length - 'btnSearch'.length) { 
        // this is a dirty hack to avoid the validate plugin to work for the button 
        eval("var error = 1 2 ''"); 
       } 
      }); 

      // original code from umbraco ignored here.... 
     } 

...............

有類似的問題在這裏: jQuery Validation plugin: disable validation for specified submit buttons (這是一個有點不同,因爲submitHandler用於這一個...)

回答

3

使用忽略並將選擇器設置爲任何你需要它。

$("#myform").validate({ 
    ignore: ".ignore" 
}) 
+1

爲 'submitHandler' 被使用時,插件捕獲所有的在源代碼行46提交/輸入按鈕: this.find( 「輸入,鍵」)過濾器( 「:提交」)。單擊(函數(){ 我還沒有讀完整個源碼,我猜你的忽略選項和默認的'.cancel'類是一樣的嗎? – ccppjava 2010-05-12 16:20:22