Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果字段为空-执行一项操作,如果不执行其他操作(jQuery vs通过浏览器自动完成字段)_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如果字段为空-执行一项操作,如果不执行其他操作(jQuery vs通过浏览器自动完成字段)

Javascript 如果字段为空-执行一项操作,如果不执行其他操作(jQuery vs通过浏览器自动完成字段),javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想做一件简单的事: 如果输入字段为空-不透明度:0.5 如果字段不为空-不透明度为1 我面临一个问题: 当浏览器自动完成用户名或密码时-不会触发事件 显然,这是行不通的: .change() 这也不行: //CSS selector:not(:empty){stuff1} selector:empty{stuff2} 但我找不到任何其他有效的明确解决方案 编辑: 我知道如何更改不透明度。 我知道如何在jQuery中选择空字段或非空字段。 我不知道当浏览器完成登录表单时如何触发事件。 这可以

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

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

显然,这是行不通的:

.change()
这也不行:

//CSS
selector:not(:empty){stuff1}
selector:empty{stuff2}
但我找不到任何其他有效的明确解决方案

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

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


任何
更改
处理程序都是多余的,因为它们很可能正在输入值。。。但是我想如果你想的话,你可以把它附加到一个变更处理程序上。您只需小心使用
$(this)
,以输入为目标,这样当有人开始输入一个输入时,您不会淡出整个表单。

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

$(窗口)。加载(函数(){
变量输入=$(“:输入”);
输入。每个(功能(i){
fadeFunction($(this));
$(this).change(function(){fadeFunction($(this));});
});
});
功能衰减功能(obj){
if(obj.val().length==0){
目标法德托(0,0.5);
}
}

我还没有检查它的语法,但它能让人理解它的大意。

将它包装在一个函数中,然后在DOM加载时调用它:
$(window).load(function(){fadeFunction()})
。使用
$(“:input”)
选择所有输入字段。在.change侦听器中应用相同的函数:
$(“:input”).change(function(){fadeFunction()})
不会完全起作用,每个
函数中的第一个参数实际上是索引-您可以引用
$(this)
+我知道我会把事情搞砸的。。。我已经有一段时间不需要使用JavaScript/jQuery了。
<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>