在MS Edge中,在输入类型="数字"中输入文本后,占位符文本不会消失。

时间:2016-12-02 22:24:48

标签: html microsoft-edge html-input

要查看此问题,请尝试以下代码段:



<div>
    <span>A number input:</span>
    <input type="number" placeholder="Enter some TEXT">
</div>
<div>
    <span>A text input:</span>
    <input type="text" placeholder="Enter some text">
</div>
&#13;
&#13;
&#13;

input type="number"的行为:

  • Chrome :无法输入文字。输入数字时,占位符文本会按预期消失。
  • Internet Explorer :能够输入文字,但输入文字或数字时,占位符文字会按预期消失。
  • 边缘:能够输入文字,输入文字时,占位符文字不会消失!

什么?这真的只是Edge中的一个疯狂的错误吗?如果是这样,我希望合适的人知道这个错误,但我找不到任何其他人抱怨它。

有关补偿此问题的最佳方法的任何想法吗?

1 个答案:

答案 0 :(得分:3)

您可以随时通过观看keypress事件手动过滤掉字母。这里有一些JQuery代码,只允许你在一个数字文本框中键入“0123456789”:

$("input[type='number']").keypress(function(event){
    // If this key is not a number...
    if (event.which < 48 || event.which > 57)
  {
    event.preventDefault();
    return false;
  }
});

这是您的JSFiddle分叉包含此代码:https://jsfiddle.net/o263wmnh/

相关问题