我正在做登录表单。
这是我在 CodeIgnitor 中的观点:
<div id="login-form">
<?php
echo heading('Login', 2);
echo form_open('login/login_user');
echo form_input('email', set_value('email', 'Email Address'));
echo br();
echo form_password('password', '', 'placeholder="Password" class="password"');
echo br(2);
echo form_submit('submit', 'Login');
echo form_close();
echo validation_errors('<p class="error">');
?>
</div>
使用 JavaScript,我尝试确保以下功能:
如果用户单击密码字段,则该字段为空(准备好让用户输入他/她的密码)。如果用户不写他/她的密码并点击其他地方,passowrd 字段将再次获得占位符密码。
这是执行此操作的 JavaScript 代码:
$(':password').focusin(function(){
if ($(this).attr('placeholder') !== undefined){
$(this).removeAttr('placeholder')
}
});
$(':password.password').focusout(function(){
$(this).attr('placeholder', 'Password');
})
还有一个 CSS 控制占位符字符串的颜色(它使它与输入字段的颜色相同,在我的例子中是 #999999)。
input[type=text],
input[type=password] {
display: block;
padding: 3%;
color: #999999;
margin: 0 0 1% 0;
width: 90%;
border: none;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
background: #202020;
}
::-webkit-input-placeholder {
color: #999999;
}
:-moz-placeholder { /* Firefox 18- */
color: #999999;
}
::-moz-placeholder { /* Firefox 19+ */
color: #999999;
}
:-ms-input-placeholder {
color: #999999;
}
问题是所有这些(电子邮件和密码字段看起来相同)在 Chrome 和 IE10 中都可以正常工作,但在 Mozilla 中它们看起来不同。颜色相同,但密码字段的字母似乎更小或字体不同,因此两个字段看起来不同且难看。
知道为什么 Mozilla 在设计方面表现不同(JS 功能、删除占位符并重新放置它可以正常工作)吗?
谢谢 ...
... 这是演示。
不幸的是,我无法在此处设置 JS 功能(因此,当用户单击时,输入的密码将为空。不过,我的问题是可见的,如果您在 Mozilla nad 例如 Chrome 中查看此演示。