使用jQuery Validator插件验证表单,但是从链接触发它

时间:2011-12-30 16:52:37

标签: jquery hyperlink jquery-validate

全部, 我正在尝试使用jQuery Form Validator(http://docs.jquery.com/Plugins/Validation)。但是,我希望能够单击链接进行验证,然后在一切正常的情况下提交表单。有谁知道如何做到这一点?任何提示或建议将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:5)

完全可能。插件文档甚至give an example,我已经修改了一点而不是提醒:

$("#myform").validate();
$("a.check").click(function() {
  if ($("#myform").valid()) {
    $("#myform").submit();
  }
  return false;
});

答案 1 :(得分:0)

此代码的工作方式与接受的答案相同,但删除了所有冗余。 (无需使用.valid()来检查表单,因为Validate插件将继续正确阻止无效表单。)

  • 使用event.preventDefault()来阻止锚元素的默认行为。

    $("#myform").validate();                // initialize plugin
    
    $("a#submit").on('click', function(e) { // capture the anchor link click
        e.preventDefault();                 // block default anchor link behaviors
        $("#myform").submit();              // simulates a submit button
    });
    
  • 在锚标记中使用href="#"

    <a id="submit" href="#">Submit</a>
    

$(document).ready(function() {

  $("#myform").validate({ // initialize plugin
    submitHandler: function(form) { // simulate form submission for demo
      alert('form submission');
      return false;
    }
  });

  $("a#submit").on('click', function(e) { // capture the anchor link click
    e.preventDefault();                 // block default anchor link behaviors
    $("#myform").submit();              // simulates a submit button
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.0/jquery.validate.js"></script>

<form id="myform">
  <input type="text" required="required" name="test1" />
  <br />
  <input type="text" required="required" name="test2" />
  <br />
  <a id="submit" href="#">Submit</a>
</form>