2011-09-16 79 views
5

我正在使用jQuery驗證來驗證輸入。 我的代碼:使用驗證器驗證表單的Click事件jQuery

$('#button').click(function() {  
    $("#form").validate({    
     rules: { 
      phone: { 
       required: true, 
       number: true, 
       rangelength: [7, 14] 
      } 
     } 
    }); 
}); 

和HTML:

<form id="form" name="form" method="post" action=""> 
<input id="phone" name="phone" class="required" type="text" /> 
<div class="button" id="send_b">Send</div> 
</form> 

此代碼不能正常工作。如果我添加這行jQuery

$("#form").submit(); 

裏面的點擊事件的作品。但我不想提交表單,所以我只想對點擊進行驗證。

有誰知道如何做到這一點?

+0

提供有關「不能工作」的更多詳細信息。你期望它做什麼不是? – BishopRook

+0

IIRC'validate()'不*做驗證,它*設置*驗證提交。打開代碼來查看它是否可以短路,或者是否有可以調用的方法實際上只是驗證。 –

回答

13

只需添加.form()立即手動觸發驗證(默認行爲等待提交事件):

$('#button').click(function() {  
    $("#form").validate({    
    rules: { 
     phone: { 
     required: true, 
     number: true, 
     rangelength: [7, 14] 
     } 
    } 
    }).form(); 
}); 
+0

酷!有用!非常感謝! – novellino

0

您的代碼的功能結合到click事件按鈕。你在做什麼是說「當這個按鈕被點擊時,將表單驗證應用到表單中」。

這是使用驗證插件的錯誤方式(我假設您使用的是this驗證插件)。相反,您只需將validation()方法直接執行到form元素上;該插件負責處理submit事件。

所以,擺脫click事件綁定。

+0

我剛剛遇到一個問題,我正在驗證單個輸入框,並且該值是鏈接的參數。但我認爲你是對的,它會自動驗證onclick。 – yardpenalty

0

使用表單方法form()使用您的點擊事件的方法