2013-06-28 78 views
2

我在我的網站上運行以下腳本。用戶必須輸入10個字符的「testnumber」。有一個長度檢查驗證。當用戶點擊提交按鈕時,我的腳本確實可以正常工作。如何驗證Javascript中的輸入鍵?

但問題是,當用戶按下Enter鍵而不是鼠標點擊時,它不會警告用戶。我怎樣才能改變它,以便當用戶按下回車鍵時,這個腳本將會提供與點擊提交按鈕相同的信息?

<script type="text/javascript"> 
    function isNumber(n) { 
     return !isNaN(parseFloat(n)) && isFinite(n); 
    } 
    function formvalidation(form) { 
     var isSubmitting = false; 
     var value = document.getElementById('testnumber').value; 
     if (value.length == 10) { 
      if (isNumber(value)) { 
       isSubmitting = true; 
      } 
     } 
     if (isSubmitting) { 
      form.submit(); 
     } 
     else { 
      alert('testnumber must be at least 10 character.'); 
      return false; 

     } 
    } 
</script> 

這是HTML代碼的一部分:

<tr> 
    <td align="center"> 
     <label> 
      <div align="left"> 
       <span class="text7"><strong>enter testnumber:</strong></span> 
       <input name="testnumber" type="text" id="testnumber" size="50" value="<%=(testnumber)%>" /> 
       <input name="search" id="search" type="button" class="normalmail" value="Search" onclick="formvalidation(frmSearch);" /> 
           &nbsp;&nbsp; 
      </div> 
     </label> 
    </td> 
</tr> 
+2

你有一個監聽器提交按鈕?如果用戶點擊輸入,它將不會效仿提交按鈕上的klick,而是會提交表單本身。 – Kersten

+1

添加一個'submit'事件處理程序,另外:嘗試'返回!!(n == +(n));'作爲您的'isNumber'函數 –

+1

分享您的html代碼 – Rab

回答

3

希望這將有助於

<from onsubmit="return formvalidation()"> 
<tr> 
        <td align="center"> 
         <label> 
          <div align="left"> 
           <span class="text7"><strong>enter testnumber:</strong></span> 
           <input name="testnumber" type="text" id="testnumber" size="50" value="<%=(testnumber)%>" /> 
           <input name="search" id="search" type="button" class="normalmail" value="Search" onclick="formvalidation(frmSearch);" /> 
           &nbsp;&nbsp; 
          </div> 
         </label> 
        </td> 
       <!-- </tr></tr> --> 
</form> 

腳本

<script type="text/javascript"> 
    function isNumber(n) { 
     return !isNaN(parseFloat(n)) && isFinite(n); 
    } 
    function formvalidation() { 
     var isSubmitting = false; 
     var value = document.getElementById('testnumber').value; 
     if (value.length > 10 && value.length < 10) { 
      alert('testnumber must be at least 10 character.'); 
      return false 
     } 
     else if (isSubmitting) { 
      return true 
     } 
     else {    
      return false; 
     } 
    } 
</script> 
+0

非常感謝!這解決了這個問題。 – sensahin