如果字段为空 - 做一个东西,如果不做其他的东西(jQuery vs Field Autocompletion by Browser)

时间:2012-11-19 21:25:59

标签: javascript jquery html css css3

我想做一件简单的事情:
如果输入字段为空 - 具有不透明度:0.5
如果字段不为空 - 具有不透明度1。

我遇到了一个问题: 当浏览器自动完成用户名或密码时 - 不会触发事件。

显然这不起作用:

.change()

这也不起作用:

//CSS
selector:not(:empty){stuff1}
selector:empty{stuff2}

但我找不到任何其他明确的解决方案。

编辑: 我知道如何改变不透明度 我知道如何在jQuery中选择空或非空字段 浏览器完成登录表单时,我不知道如何触发事件 这可以在页面加载,但也可以在以后(比如他自己输入用户名,并自动输入密码)

2 个答案:

答案 0 :(得分:1)

$(function(){
  if($('#myInput').val().length === 0){
    $('#myInput').fadeTo(0, 0.5);
  }
});

您可以检查值长度....这会在文档就绪时触发。

任何change处理程序都是非常多余的,因为它们很可能是输入值...但我想如果你愿意,可以将它附加到更改处理程序。您只需要谨慎使用$(this)来定位输入,因此当有人开始输入一个输入时,您不会淡出整个表单。

答案 1 :(得分:1)

扩大艾伦的回答:

<script type="text/javascript">
    $(window).load(function(){
        var inputs = $(":input");
        inputs.each(function(i){
           fadeFunction($(this));
           $(this).change(function(){fadeFunction($(this));});
        });

    });

    function fadeFunction(obj){
        if(obj.val().length === 0){
           obj.fadeTo(0,0.5);
        }
    }
</script>

我没有检查过这个的语法,但它得到了一般的想法。