我想做一件简单的事情:
如果输入字段为空 - 具有不透明度:0.5
如果字段不为空 - 具有不透明度1。
我遇到了一个问题: 当浏览器自动完成用户名或密码时 - 不会触发事件。
显然这不起作用:
.change()
这也不起作用:
//CSS
selector:not(:empty){stuff1}
selector:empty{stuff2}
但我找不到任何其他明确的解决方案。
编辑: 我知道如何改变不透明度 我知道如何在jQuery中选择空或非空字段 浏览器完成登录表单时,我不知道如何触发事件 这可以在页面加载,但也可以在以后(比如他自己输入用户名,并自动输入密码)
答案 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>
我没有检查过这个的语法,但它得到了一般的想法。