2017-04-17 48 views
3

我想限制「0」不應該放在文本框中的第一個字符。如何限制「0」不應該被放置在jQuery文本框中的第一個字符我該怎麼辦

<div class="form-group row" align="center"> 
    <label class="col-md-4 form-control-label"><span class="mandatory"></span> Payment</label> 
    <div class="col-md-8" > 
     <div class="input-group"> 
     <input type="text" name="pay" id= "pay" class="form-control input-md" max="100000"/> 
     </div> 
    </div> 
</div> 

var myLength = $("#pay").val().length;   
if($(this).val() === '0') 
{    
    $(this).val(''); 
} 

它限制的第一個數字「0」,但多個0的允許和另一種情況是我第一次進入1000010之前輸入0年代以後。

我只想在沒有0的情況下啓動。

+0

@check我的答案和小提琴鏈接將解決你的問題 –

回答

1

您可以通過charAt功能檢查,如果它的字符串:在輸入框中

var myLength = $("#pay").val(); 

     if(myLength.charAt(0) === '0') 
     {    
      $(this).val(''); 
     } 

更爲有效的方式不接受0的首位。

檢查工作代碼:JS Fiddle

+0

謝謝它的正常工作:) – Durga

1

要匹配數字開頭的任何數字,但不是零,使用正則表達式:

^[1-9][0-9]*$ 

例:

function validateInput(input) { 
    var regex = ^[1-9][0-9]*$; 
    return regex.test(input); // It will return true or false depends on the regex test 
} 

調用這個函數與輸入值。

2

最好的方法是使用keyup事件來防止在用戶輸入時在第一個位置輸入0

這裏有一個演示:

$('#pay').keyup(function(e){ 
 
     if($(this).val().match(/^0/)){ 
 
      $(this).val(''); 
 
      return false; 
 
     } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<input type="text" name="pay" id= "pay" class="form-control input-md" max="100000"/>