2017-01-10 74 views
1

我有一個表單,只有一個由條形碼掃描器填充的輸入。我試圖使用JS或JQuery來提交表單,只有當輸入的內容是7個字符。我希望它的形式爲AUTO提交,無需用戶點擊提交。我看了很多例子,但還沒有找到一個可行的解決方案。X字符後自動提交表格

這裏是我的嘗試:

<form action="PupListMobile.php" id="my_form" method="get"> 
    <label for="text-1"></label> 
    <input type="text" autofocus name="sID" id="sID" value="" id="my_button" placeholder="CLICK TO SCAN:"> 
    <input type="hidden" name="lane" value="1" /> 
    <input id="subHere"type="submit" value="Submit" /> 

</form> 

的Jquery:

$('#sID').keyup(function(){ 
    if(this.value.length ==7){ 
    $('#subHere').click(); 
    } 
}); 

$(document).ready(function() { 
    $(window).keydown(function(event){ 
    if(event.keyCode == 13) { 
     event.preventDefault(); 
     return false; 
    } 
    }); 
}); 

回答

1

我將與以下幾點入手:

  1. maxlength="7"添加到文本輸入,因爲您使用的是keyup(..),因此您無法按住某個鍵以強制輸入超過7個字符的文本
  2. 使用jquery函數檢測長度,然後提交輸入的表單

設置最大長度

<input type="text" autofocus name="sID" id="sID" value="" 
    id="my_button" placeholder="CLICK TO SCAN:" maxlength="7" /> 

自動提交表單

$(function() { 
 
     var $id = $('#sID'); 
 
     $id.keyup(function(e) { 
 
     if ($id.val().length >= 7) { 
 
      $(this.form).submit(); 
 
     } 
 
     }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<form action="PupListMobile.php" id="my_form" method="get"> 
 
    <label for="text-1"></label> 
 
    <input type="text" autofocus name="sID" id="sID" value="" id="my_button" placeholder="CLICK TO SCAN:" maxlength="7" /> 
 
    <input type="hidden" name="lane" value="1" /> 
 
    <input id="subHere"type="submit" value="Submit" /> 
 

 
</form>

+0

這個工作。謝謝!我花了數小時尋找修復。 –

1
$(function(){ 
    $('#sID').keyup(function(){ 
     if(this.value.length ==7){ 
      alert(123); 
     $('#subHere').click(); 
     } 
    }); 
}) 

您可以測試這個