当我自动完成输入字段时,标签会覆盖值,并且加载时也不会获得长度

Posted

技术标签:

【中文标题】当我自动完成输入字段时,标签会覆盖值,并且加载时也不会获得长度【英文标题】:When I autocomplete input field, value is overrides by the label and not getting length on load as well 【发布时间】:2019-02-11 13:20:56 【问题描述】:

当我填写表格并保存然后刷新之后,我遇到了以下问题。

当我自动保存输入字段时,标签会覆盖值,并且加载时也不会获得长度。我已经在谷歌上尝试过很多次搜索,但我没有找到合适的解决方案。我是struct,请帮忙!

我检查了如下长度:

if ( $('#LoginEmail').val().length > 0)
    $(this).siblings('.placeholder').addClass('active');
     else
      $(this).siblings('.placeholder').removeClass('active');
    

// Material Input
$('.form-control input').blur();
$('.placeholder').click(function() 
  $(this).siblings('input').focus();
);
$('.form-control').focus(function() 
  $(this).siblings('.placeholder').removeClass('active').addClass('active');
);   

// on blur
$('.form-control input').blur(function() 
  if ( $(this).val().length > 0)
    $(this).siblings('.placeholder').addClass('active');
     else
      $(this).siblings('.placeholder').removeClass('active');
    
);

// Length Check
if ( $('#LoginEmail').val().length > 0)
    $(this).siblings('.placeholder').addClass('active');
     else
      $(this).siblings('.placeholder').removeClass('active');
    
.inputField input, .inputField select 
    width: 100%;
    height: 35px;
    padding: 10px 23px;
    border: 1px solid #c5c5c5;
    font-size: 15px;
    -webkit-box-shadow: none;
    box-shadow: none;
    border-radius: 0;
    -webkit-border-radius: 0;
    background: #fff!important;

.inputField 
    margin: 10px 0 0;

.inputField input, .inputField select 
    width: 100%;
    height: 55px;
    padding: 10px 23px;
    border: 1px solid #c5c5c5;
    font-size: 15px;
    -webkit-box-shadow: none;
    box-shadow: none;
    border-radius: 0;
    -webkit-border-radius: 0;
    background: #fff !important;

.inputField textarea 
    width: 100%;
    height: 120px;
    padding: 10px 23px;
    border: 1px solid #c5c5c5;
    font-size: 15px;
    -webkit-box-shadow: none;
    box-shadow: none;
    border-radius: 0;
    -webkit-border-radius: 0;
    background: #fff !important;

.inputField select .star 
    color: #f00;

.inputField.half 
    width: 49.5%;
    float: left;
    margin: 10px 1% 0px 0;

.inputField.half: nth-of-type(even) 
    margin-right: 0;
    float: left;

.inputField 
    width: 100%;
    position: relative;
    height: auto;
    display: inline-block;
    padding: initial;
    border: 0;
    box-shadow: none;

.placeholder 
    position: absolute;
    top: 17px;
    left: 23px;
    transition: all 0.3s ease;

.inputField.form-control select 
    color: #777;

.inputField select 
    color: #777;

.inputField .placeholder.active 
    top: -11px;
    background: #fff;
    padding: 0 2px;

.inputField .placeholder 
    position: absolute;
    top: 30px;
    left: 23px;
    -webkit-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
<div class="inputField form-control">          
 <input type="email" class="form-control" id="LoginEmail" required> 
 <div class="placeholder">
   <label for="email">Email ID</label>
   <span class="star">*</span>
</div>         
</div>
<div class="inputField form-control">         
 <input type="Password" class="form-control" id="LoginPassword" required>  
 <div class="placeholder">
   <label for="Password">Password </label>
   <span class="star">*</span>
</div>
</div>
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>

【问题讨论】:

你的意思是autocomplete ? 是的!它的自动完成功能。 你能做一个小提琴吗? 自动完成总是有一些棘手的问题,我认为你需要做一些事情才能获得自动完成的价值,但我现在想不出它是什么 这里是 Codepen:codepen.io/tushar-kumawat/pen/wNjKeV 【参考方案1】:

终于知道答案了:

$(window).bind("load", function()  
$.each($('.inputField.form-control input:-webkit-autofill'), function() 
    var autofilled = $(this);
        var inputblock = $(this).next()
    $(inputblock).addClass('active');

);
); 

【讨论】:

以上是关于当我自动完成输入字段时,标签会覆盖值,并且加载时也不会获得长度的主要内容,如果未能解决你的问题,请参考以下文章

获取导致 React 闪烁的输入值

自动完成无法正常工作

出现键盘时移动文本字段会覆盖(Swift)中的顶部文本字段

如何从 p 标签回调文本到输入文本字段?

移除 MVC 中的浏览器自动完成功能

jQuery:在字段中发生自动完成后删除错误