3

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

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

显然这不起作用:

.change()

这也不起作用:

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

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

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

4

2 回答 2

1

扩展ahren的答案:

<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>

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

于 2012-11-19T21:39:24.037 回答
1
$(function(){
  if($('#myInput').val().length === 0){
    $('#myInput').fadeTo(0, 0.5);
  }
});

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

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

于 2012-11-19T21:27:33.193 回答