Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何将文本区域限制为仅容纳数字?_Html_Numbers_Textarea_Limit - Fatal编程技术网

Html 如何将文本区域限制为仅容纳数字?

Html 如何将文本区域限制为仅容纳数字?,html,numbers,textarea,limit,Html,Numbers,Textarea,Limit,我想在我的博客上做一个日期文本框,日期只是数字。我不希望任何人打字出错。有没有办法将字符限制为只有数字?谢谢 您需要一些java脚本来实现这一点 <html> <head> <title>Test</title> <script language="javascript"> function checkInput(ob) { var invalidChars = /[^0-9]/gi if(invalidChars.test(o

我想在我的博客上做一个日期文本框,日期只是数字。我不希望任何人打字出错。有没有办法将字符限制为只有数字?谢谢

您需要一些java脚本来实现这一点

<html>
<head>
<title>Test</title>
<script language="javascript">
function checkInput(ob) {
  var invalidChars = /[^0-9]/gi
  if(invalidChars.test(ob.value)) {
            ob.value = ob.value.replace(invalidChars,"");
      }
}
</script>
</head>

<body>
    <input type="text" onkeyup="checkInput(this)"/>
</body>
</html>

试验
功能检查输入(ob){
var invalidChars=/[^0-9]/gi
if(无效字符测试(观察值)){
ob.value=ob.value.replace(invalidChars,“”);
}
}
试试这个(利用jquery javascript库)

html

JSFIDLE

编辑。不确定
元素
是否为
输入
ot
textarea
,hope应该适用于这两种情况

javascript,而不使用jquery javascript库

html

JSFIDLE


希望这对您有所帮助

如果您使用jQuery,您可以在

$('input')。按键(功能(e){
var a=[];
var k=e,其中;
对于(i=48;i<58;i++)
a、 推(i);
如果(!(a.indexOf(k)>=0))
e、 预防默认值();
});

改用HTML5输入数字类型,并利用本机浏览器验证。因此,不需要JavaScript

<input type="number" />

它在浏览器中有很多功能,是标准和最佳实践解决方案

此外,在
手机
平板电脑
上,数字键盘也将出现


您应该使用此功能在各种
DOM
元素上设置输入过滤器,包括
textarea

function setInputFilter(textbox, inputFilter) {
        ["input", "keydown", "keyup", "mousedown", "mouseup", "select", "contextmenu", "drop"].forEach(function(event) {
            textbox.addEventListener(event, function() {
                if (inputFilter(this.value)) {
                    this.oldValue = this.value;
                    this.oldSelectionStart = this.selectionStart;
                    this.oldSelectionEnd = this.selectionEnd;
                } else if (this.hasOwnProperty("oldValue")) {
                    this.value = this.oldValue;
                    this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
                } else {
                    this.value = "";
                }
            });
        });
    }
然后您只需设置过滤器,如下所示:

setInputFilter(document.getElementById("textarea_id"), value => {
        return /^\d*$/.test(value); // Allow digits and '.' only, using a RegExp
});

在HTML5中,有一种简单快捷的方法。。将阻止键入字符而不是数字此答案假定您正在使用jQuery@antlersoft编辑文章,包括“利用jquery javascript库”。jquery不需要满足需求,只需要共享一个潜在选项。谢谢。@antlersoft请查看“javascript,不使用jquery javascript库”中的后期编辑选项。只是分享潜在的或可能的选择。再次感谢。
function checkText() {   
  var textarea = document.querySelectorAll("input");
  textarea[0].setAttribute("placeholder", "Please input numbers");    
  textarea[0].addEventListener("change", function(e) {
    var txt = /[a-z]/gi.test(e.target.value);
    if (txt) {
      e.target.value = "";
      e.target.setAttribute("placeholder", "Not a number, please input numbers");
    };    
  }, false);
};
checkText()
$('input').keypress(function(e) {
    var a = [];
    var k = e.which;

    for (i = 48; i < 58; i++)
        a.push(i);

    if (!(a.indexOf(k)>=0))
        e.preventDefault();
});
<input type="number" />
function setInputFilter(textbox, inputFilter) {
        ["input", "keydown", "keyup", "mousedown", "mouseup", "select", "contextmenu", "drop"].forEach(function(event) {
            textbox.addEventListener(event, function() {
                if (inputFilter(this.value)) {
                    this.oldValue = this.value;
                    this.oldSelectionStart = this.selectionStart;
                    this.oldSelectionEnd = this.selectionEnd;
                } else if (this.hasOwnProperty("oldValue")) {
                    this.value = this.oldValue;
                    this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
                } else {
                    this.value = "";
                }
            });
        });
    }
setInputFilter(document.getElementById("textarea_id"), value => {
        return /^\d*$/.test(value); // Allow digits and '.' only, using a RegExp
});