2013-03-15 85 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