2012-02-14 56 views
3

我正在做的是在我的表单的提交按钮,0​​上执行点击操作,进行一些计算,然后进行ajax调用而不是提交表单。使用html5验证即使表单从未被提交?

有没有办法使用JavaScript强制HTML5验证器即使未提交表单也会触发?

$('#submitButton').click(function (e) { 
     e.preventDefault(); //stop the form from submitting 

     //Do computation 

     $.post('/comments', values, function(results) { 
      hideForm($('#new_comment_' + parentId)); 
      parent.children('.children').prepend(results); 
     }, 'html'); 
    }); 
+0

是的我可以推出我自己的验证在JavaScript中,但html5的required =“required”标签是很好,很简单,并为您设置一个体面的弹出式GUI。少工作,少代码复杂性总是一个加号,但它最终会花费太多的工作来使用html5的验证,我只能做我自己的javascript。 – 2012-02-14 05:53:22

回答

8

它工作的很好,我测试了最新的Chrome和Firefox。只是e.preventDefault()<form>

HTML:

<form method="post" action="test.html"> 
    <input type="text" required></input> 
    <input type="submit" value="Submit"> 
</form> 

JQ:

$('form').submit(function(e){ e.preventDefault(); }); 

例如:http://jsfiddle.net/elclanrs/2nnLc/2/

+2

啊,赶上表单提交,而不是点击提交按钮。更聪明的想法谢谢:) – 2012-02-14 09:23:05

3

使用HTML5的限制表单对象有一些新的方法。例如,您可以调用表单对象的checkValidity()来检查输入。

<form method="post" action="test.html" id="myForm"> 
    <input type="text" required></input> 
    <input type="submit" value="Submit" id="submitButton"> 
</form> 

<script type="text/javascript"> 
    $('#submitButton').click(function (e) { 
     e.preventDefault(); 
     alert($("#myForm").get()[0].checkValidity()); 
    }) 
</script>