【问题标题】:Disable text when input number uses placeholder输入数字使用占位符时禁用文本
【发布时间】:2015-06-13 00:01:20
【问题描述】:

使用占位符时如何禁用文本?

jsfiddle

<input type="number" placeholder="Min.">

编辑

input 号码应该只允许用户输入数字。

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

这会阻止用户输入任何不是数字的字符,同时仍然允许他们使用不可打印的键(ctrl、alt、退格、回车等)

本文第一部分来自this answer to a different question

第二部分基本上是在用户每次按键时检查,看那个键是否...

  1. 可打印,并且
  2. 不是数字

如果满足这两个条件,则阻止输入字符。

// https://stackoverflow.com/a/12467610/4639281
function printable(keycode) {
    var valid =
        (keycode > 47 && keycode < 58)   || // number keys
        keycode == 32 || keycode == 13   || // spacebar & return key(s) (if you want to allow carriage returns)
        (keycode > 64 && keycode < 91)   || // letter keys
        (keycode > 95 && keycode < 112)  || // numpad keys
        (keycode > 185 && keycode < 193) || // ;=,-./` (in order)
        (keycode > 218 && keycode < 223);   // [\]' (in order)
    return !!valid;
}

// This part is me
document.getElementById('min').onkeydown = function(e) {
    var char = String.fromCharCode(e.keyCode);
    if(printable(e.keyCode) & isNaN(char)) {
        e.preventDefault();
    }
}
&lt;input type="text" placeholder="Min." id="min"&gt;

【讨论】:

    【解决方案2】:

    jquery numeric 插件成功了。谢谢大家的帮助。我不得不写更多的文字,因为答案至少应该是 30 个字符。

    $(document).ready(function(){
       $(".numeric").numeric();
    });
    

    【讨论】:

    • 是的,我就是这样做的,如果你再次检查,就会有答案的链接。
    猜你喜欢
    • 2017-05-11
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2020-05-12
    • 2014-08-24
    • 1970-01-01
    相关资源
    最近更新 更多