此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" />

10-08 00:52