【发布时间】:2010-08-15 13:30:41
【问题描述】:
我有一个输入框:
<input class="longboxsmall" type="text" name="number" value=""/>
我想禁止数字 0 是框中输入的第一个数字,我该怎么做???我可以使用 Jquery 吗??
【问题讨论】:
我有一个输入框:
<input class="longboxsmall" type="text" name="number" value=""/>
我想禁止数字 0 是框中输入的第一个数字,我该怎么做???我可以使用 Jquery 吗??
【问题讨论】:
$(".longboxsmall").keyup(function(){
var value = $(this).val();
value = value.replace(/^(0*)/,"");
$(this).val(value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="longboxsmall" type="text" name="number" value=""/>
JS
$(".longboxsmall").keyup(function(){
var value = $(this).val();
value = value.replace(/^(0*)/,"");
$(this).val(value);
});
HTML
<input class="longboxsmall" type="text" name="number" value=""/>
试试jsfiddle。
最好拦截其他事件,例如模糊、变化、聚焦等。 见jquery。 谢谢@Simen Echholt。
解释:
$(".longboxsmall").keyup
Jquery 获取类 longboxsmall 的每个元素,并准备在 onkeyup 事件上调用函数。
var value = $(this).val();
value = value.replace(/^(0*)/,"");
$(this).val(value);
此函数使用正则表达式替换 begin (^) 中的每个 0 值。
【讨论】:
mousedown/up 和/或change
当然。使用具有合适正则表达式的输入过滤器插件之一(如this)。
【讨论】:
为了不看到输入中的 0 然后将其删除,您可以使用按键:
$('.longboxsmall').on('keypress', function(e) {
if (!$(this).val() && e.which == 48)
return false;
});
【讨论】:
最好的方法是防止在用户输入时在第一个位置输入 0。我们可以通过使用 keyup 事件来实现这一点。这样我们就可以避免很多类似的情况了。
它可以防止像 0123 这样的复制粘贴。
$(document).on('keyup','#TextBoxID', function(event){
if($(this).val().match(/^0/)){
$(this).val('');
return false;
}
});
【讨论】:
$(".longboxsmall").keyup(function(){
var value = $(this).val();
value = value.replace(/[^(1*)]+|[^(0*)]+/,"");
$(this).val(value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="longboxsmall" type="text" name="number" value=""/>
【讨论】: