此javascript代码可用于Firefox。但是在Chrome浏览器中,“ +”号会添加到“ 000”中。我尝试了event.preventDefault()。但这没有任何区别。
<input id="mab" type="text" onKeyPress="return EnsureNumeric(event)">
<script type="text/javascript">
$('#mab').keyup(function(event) {
if (event.keyCode == 107) {
document.getElementById("mab").value = document.getElementById("mab").value + '000';
}
});
</script>
最佳答案
您在Chrome和Firefox中的代码都得到了相同的行为;也就是说,按+后,输入值将变为+000
。
从问题的上下文来看,您似乎不希望显示+
,而只是显示000
。因此,您需要使用keydown
事件,因为keyup
在事件链中为时已晚,并且+
已经添加到输入的值中。尝试这个:
$('#mab').keydown(function(e) {
if (e.keyCode === 107) {
e.preventDefault();
$(this).val(function(i, v) {
return v + '000';
});
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="mab" type="text" />