2017-04-17 45 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"/>