2016-02-05 94 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' –