如何获取无效输入的内容长度

How to get content length of invalid input?

本文关键字:输入 无效 何获取 获取      更新时间:2023-09-26

我有一个元素:

<input type="number">

当我输入500美元时,它没有通过验证,所以

console.log("el.value");
//returns ""

这是意料之中的事。

问题是:如何检查是否有内容

我正在尝试显示/隐藏占位符文本(不,我不能使用原生内容(。它需要是type="number",因为我需要强制使用手机号码键盘。

有什么想法吗?

更新:
从下面的回答中,我可以看出我的问题不够清楚。

1( 我需要使用JavaScript来告诉我输入中是否有内容。(我不需要提取,我只需要看看是否有内容(。

这很棘手,因为无效内容(比如在数字输入字段中输入单词(意味着值=",即使输入了内容。

这正是我需要解决的问题。

inputEl.validity.valid可能工作,但我找不到任何关于它在浏览器中的支持程度的文档。

检查是否可以用它做点什么:

html

<input id="my-input" type="number">

js

$(document).ready(function(){
    $('#my-input').on('input', function(){
        console.log($(this).val());
    });
});

在移动设备上特别是Samsung在字段中附加值不抛出按键事件,您可以使用onChange="check(this(">

验证字段
if (variablename==""){
    //no content
}

if (variablename.length==0){
    //no content
}

如果您需要强制输入类型为数字的唯一原因是数字键盘,为什么不制作type="text"pattern="'d*"呢?通过这种方式,您可以随心所欲地处理和检查输入,但仍然可以强制显示数字键盘。

<input type="text" pattern="'d*">

这是一个真正的答案:

如何获取原始值an<输入类型=";数字">领域

基本上,您可以检查input.validity.valid或input.validty.badInput.

IE中不支持,但其他地方支持良好。

点击此处了解更多详细信息:https://developer.mozilla.org/en-US/docs/Web/API/ValidityState