由于输入font-size =“0”,输入值返回空字符串

时间:2016-05-06 16:16:55

标签: javascript jquery html-input

我发现一个问题困扰了我几个星期。我正在使用jQuery来检索输入文本。用户输入一些字符并点击ENTER,然后在控制台中打印文本。

HTML:

grant_type

jQuery的:

password

如果我使用Firefox,一切都很好。但是,如果我使用Chrome或Opera,它们将返回一个空字符串。

我终于发现问题来自<input id="abc" type="text" autofocus style="font-size:0;"> (我想隐藏输入)。如果该值不是0,则Chrome和Opera在拾取输入的文本时没有任何问题。

问题:

  1. 为什么?

  2. 如何隐藏$(document).on('keypress', '#abc', function(e) { if (e.which!=13) { return; } console.log('Entered: ' + $('#abc').val()); $('#abc').val(''); }); 元素,它仍然可以接受用户输入?

1 个答案:

答案 0 :(得分:1)

要回答第二个问题,您可以使用CSS样式,例如text-indent。 该文本将隐藏在屏幕外,您仍然可以获得该值。

<input id="abc" type="text" autofocus style="text-indent:-9999em;">

我相信还有其他方法可以实现这一目标......比如将输入定位在屏幕外

<input id="abc" type="text" autofocus style="position:absolute; left:-9999em; top:-9999em"> 

但你的项目似乎非常具体。