定位不适用于Javascript

汤姆

我正在建立一个“自动填充”功能。当用户在输入字段中键入内容时,系统在数据库中找到该字符串时,应在灰色的输入字段中显示该字符串,类似于google曾经/仍然拥有/拥有的字符串。

因此,我建立了两个输入字段,其中一个清晰可见:

的HTML:

<input id="email_input" type="text">
<input id="autofill" type="text">

CSS:

#email_input{
    background-color: transparent;
    z-index: 100;
}

然后,我autofill通过JS输入准确定位在哪里email_input

function positionAutocompleteInput(){
  var top = $('#email_input').position().top;
  var left = $('#email_input').position().left;
  $('#autofill').css({'top':top});
  $('#autofill').css({'left':left});
}
positionAutoFillInput();

我确实喜欢这样的实际装填:

function autofill(context){
  var input = $('#email_input').val();
  var replacement = context[0].email;
  replacement = replacement.slice(input.length);
  var display = input + replacement;
  $('#autofill').val(display)
}

我尝试调用positionAutoFillInput();onInput,以便每个输入重新定位。如果我查看控制台中两个输入字段的位置,它们的位置都相同。

两个输入字段具有相同的字体大小和字体系列。

由于某些原因,它仍然看起来:

在此处输入图片说明

有人知道答案吗?

epascarello

您可以像这样用CSS定位它们吗?这样,它不需要JavaScript即可定位它。

#autofill, #email_input {
  font-size: 20px;
}

#autofill {
  position: absolute;
  color: #CCCCCC;
}

#email_input {
  position: relative;
  z-index: 1;
  background: transparent;
}
<h1>Test</h1>
<div>
  <input id="autofill" type="text" value="1234567890">
  <input id="email_input" type="text">
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章