我正在为移动网络应用创建一个表单,其中输入框要求输入数字,因此我使用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');
});
答案 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');
});