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>