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

时间:2014-06-23 18:29:11

标签: javascript jquery html

我有一个元素:

<input type="number">

当我输入$ 500时,验证失败,所以

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

这是预期的。

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

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

有什么想法吗?

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

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

这很棘手,因为无效内容(比如在数字输入字段中输入单词)意味着值=“”即使输入内容也是如此。

这是我需要解决的确切问题。

inputEl.validity.valid可能会有效,但我找不到任何关于浏览器支持程度的文档。

5 个答案:

答案 0 :(得分:0)

检查你是否可以做一些事情:

HTML

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

js

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

答案 1 :(得分:0)

在移动设备上特别是三星在现场附加值不抛出按键事件, 您可以使用onChange =“check(this)”

来验证字段

答案 2 :(得分:0)

if (variablename==""){
    //no content
}

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

答案 3 :(得分:0)

如果您需要强制输入类型为数字的唯一原因是数字键盘,为什么不改为type="text"pattern="\d*"?这样您就可以按照自己喜欢的方式处理和检查输入,但仍然强制显示数字键盘。

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

答案 4 :(得分:0)

这是实际回答它的那个:

How to get the raw value an <input type="number"> field?

基本上你可以检查input.validity.valid或input.validity.badInput。

IE不支持,但在其他地方提供良好支持。

这里有更多细节: https://developer.mozilla.org/en-US/docs/Web/API/ValidityState