测试输入类型的实际值=“数字”

时间:2013-12-01 20:27:15

标签: javascript jquery html input numbers

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

如何才能获得存储在数字输入类型中的实际value,以便我可以对其进行测试? (我需要保留一个数字输入类型,以便显示正确的键盘。)谢谢!

这是我的代码片段:

$('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');
});

1 个答案:

答案 0 :(得分:1)

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

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