2013-03-15 104 views
8

所以我有一個七個部分形式,其中六個選項卡通過CSS隱藏的,當用戶點擊旁邊另一部分變淡。jQuery的驗證插件驗證表單單擊

我已經提交的頁面,以確保插件正在工作;它是。 本質上它只是要形式的下一部分經過驗證,當前部分

舉個例子

HTML

<form id = "form1" action = "backend.php" method = "post"> 
<label for "phone">First Name </label> 
    <input type = "text" name = "fName" placeholder = "First Name..." class = "required" id = "fName" /> 
<button id = "btn" type = "button" class = "buttonnav next">next</button> 
</form> 

的Javascript

$('#btn').click(function() { $("#form1").validate();}); 
+0

您是否使用jQuery驗證插件?這是值得一提的。 – Sparky 2013-03-15 18:08:08

回答

18

如果您使用the jQuery Validate插件,用你的代碼,插件不會被初始化,直到點擊按鈕。如果插件沒有被初始化,那麼就沒有驗證。

$('#btn').click(function() { $("#form1").validate();}); 

相反,.validate()大幹快上DOM準備調用一次初始化窗體上的插件。

如果你想要測試表單在初始化後隨時可以使用.valid() method

$(document).ready(function() { 

    $('#form1').validate({ // initialize plugin 
     // your options 
    }); 

    $('#btn').click(function() { 
     $("#form1").valid(); // test the form for validity 
    }); 

}); 

我不知道你是如何設置各部分彼此或正在使用的其他代碼交互。根據您的OP單獨,這是使用我的答案上面的一個工作示例。

DEMO:http://jsfiddle.net/pqVJM/

$(document).ready(function() { 

    $('#form1').validate(); 

    $('#btn').click(function() { 
     if ($("#form1").valid()) { 
      alert('hello - valid form'); 
     } 
    }); 

}); 
+0

對不起,我正在使用驗證插件。我編輯了我的腳本,不幸的是,我仍然得到和以前一樣的結果。不知道這是否有幫助(或顯示我的無知...),我試圖如果($(「#form1」)。valid()== true){alert(「hello」);}在點擊處理程序內看看是否有任何事情正在經歷,並且正在變得不斷「你好」 – 2013-03-15 19:23:17

+0

@ArtTaylor,我不知道你要去哪裏錯了......你沒有在OP中顯示足夠的代碼。 – Sparky 2013-03-15 21:47:36

+0

@ArtTaylor,看到我編輯的答案。隨着我的答案應用,你的代碼工作:http://jsfiddle.net/pqVJM/ – Sparky 2013-03-15 21:56:43