如何在弹出窗口中集中输入(模式)

时间:2018-10-21 18:44:16

标签: javascript jquery html css web-frontend

此输入具有模式弹出窗口。当弹出窗口出现时,我想集中精力。 我尝试使用onload focus功能,但对我不起作用。在这种情况下,请帮我。 谢谢 这是html

<label for="postcodeSelectInput">{l s='Post/Zip Code' mod='prestadelivery'}</label>
    <input type="text" autofocus class="form-control" id="postcodeSelectInput" placeholder="" {if $selected_address}value="{$selected_address|escape:'html':'UTF-8'}"{/if}>

在这里,我还有另一个用于浮动标签的js函数。

    <script>
    $(function() {
  $('input, textarea, select').on('focus', function() {
    var id = $(this).attr('id'),
        label = 'label[for="' + id + '"]';

    $(this).addClass('has-value');
    $(label).addClass('has-value');

  }).on('blur', function() {
    var id = $(this).attr('id'),
        label = 'label[for="' + id + '"]',
        value = $(this).val();

    if (value.length <= 0) {
      $(this).removeClass('has-value');
      $(label).removeClass('has-value');
    }
  });
});
</script>

我面临的主要问题是。当我们在其标签中键入文本时,float up效果很好。当我们保存它并返回并打开此弹出窗口以查看我们之前输入的值。然后标签没有浮起来。它与值文本重叠,如果单击(专注于输入)。然后标签浮起来。这就是为什么我认为输入应该在出现弹出窗口时集中显示。因此值和标签不会重叠。

1 个答案:

答案 0 :(得分:0)

基于此处的评论讨论。有两个问题:

  1. 重点是负载。对于您的情况,您需要添加:

  2. 另一种方法是正确绑定事件并触发事件。

这应该可以做:

<script>

  $('input, textarea, select').on('focus', function() {
    var id = $(this).attr('id'),
        label = 'label[for="' + id + '"]';

    $(this).addClass('has-value');
    $(label).addClass('has-value');

  }).on('blur', function() {
    var id = $(this).attr('id'),
        label = 'label[for="' + id + '"]',
        value = $(this).val();

    if (value.length <= 0) {
      $(this).removeClass('has-value');
      $(label).removeClass('has-value');
    }
  });


  $('input, textarea, select').focus();

</script>