2016-02-05 95 views
0

我想编辑一个数字,但如果我使用按键:输入提交表单,它将跳过数字1-20的验证并提交给我的路由。手动提交jquery跳过验证

<form action="/editrank>?_method=PUT" method="POST"> 
<input type="number" min="1" max = "20" name = "rank" value = "1"> 
</form> 

的jQuery:

$("input").keypress(function(event){ 
      if(event.which === 13){ 
        $(this).closest("form").submit(); 
      } 
     }); 

,我可以添加一个提交按钮,如果我按一下按钮,但是当我按进不了它会验证。

+0

什么样的验证是有场 –

+0

@ArunPJohny min和马克塞斯 – CXNAJ

回答

0

您可以检查表单是否有效像

$("input").keypress(function(event) { 
 
    if (event.which === 13) { 
 
    var $form = $(this).closest("form"); 
 
    if ($form[0].checkValidity()) { 
 
     $form.submit(); 
 
    } 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action="/editrank>?_method=PUT" method="POST"> 
 
    <input type="number" min="1" max="20" name="rank" value="1"> 
 
</form>

+0

https://jsfiddle.net/ arunpjohny/taabxo41/ –

+0

这工作得很好,但我已经添加了第二个输入到表单中,现在当我按下ENTER时没有任何反应,我试过使用!$ form [1] .checkValidity(),但我想这不是正确的方法 – CXNAJ

+0

@CXNAJ:根据他们的“ID”选择输入或'class' –