【问题标题】:Test against actual value of input type="number"测试输入类型=“数字”的实际值
【发布时间】:2013-12-01 20:27:15
【问题描述】:

我正在为带有输入框的移动 Web 应用程序创建一个表单,要求输入数字,所以我使用 input type="number" 进行验证,它运行良好。我还根据框中的输入改变行为。我需要隐藏div,直到用户在框中输入文本。当他们从框中删除所有文本时,再次隐藏div。这很容易做到——检测输入上的keyup 以及它的value 是否为空字符串。当用户输入不是有效数字的文本(可能,至少使用 iOS 键盘)时,就会出现问题。不幸的是,当输入的文本不是有效数字时,输入框的value 是一个空字符串。所以我的代码在我仍然需要它可见时隐藏了div,因为它认为输入框中没有value

如何将实际的value 存储在数字输入类型中,以便进行测试? (我需要将其保留为数字输入类型,以便出现正确的键盘。)谢谢!

这是我的sn-p代码:

$('input.deletable').keyup(function() {
     console.log($(document.activeElement).val()); //returns empty string if input is "?)&" for example
     if ($(document.activeElement).val() != '')
          $('#myDiv').css('display', 'block');
     else
          $('#myDiv').css('display', 'none');
});

【问题讨论】:

  • 空字符串真的“实际值”。

标签: javascript jquery html input numbers


【解决方案1】:

我认为“document.activeElement”不是获取当前输入值的最佳方式。您也可以验证输入的有效性。

$('input.deletable').keyup(function() {
     var $this = $(this);
     if ($this.val() != '' && this.checkValidity())
          $('#myDiv').css('display', 'block');
     else
          $('#myDiv').css('display', 'none');
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-16
    • 2016-11-17
    • 2013-07-16
    • 2019-12-12
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多