在我的 JQuery 验证出现一些跨浏览器问题后,我将其范围缩小到 IE8 不喜欢我使用:
errorElement: 'validation-error',
我想要实现的只是验证错误直接出现在同一行的输入框之后。我在互联网上尝试了很多例子,最接近的是:
错误标签直接显示在输入框之后,但输入框中的文本也将 css 应用于错误(正确输入后消失)。我只是希望在应用了正确的 css 类而不是输入到输入框中的实际文本时出现错误!
我的代码如下:
JS
$(function() {
$( "#loginform" ).validate({
errorClass: 'validation-error'
,errorElement:'span'
,rules: {
text_user_id: {
required: true,
minlength: 4,
maxlength: 20
}
,text_password: {
required: true,
minlength: 8,
maxlength: 20
}
}
,messages: {
text_user_id: {
required: "Please enter a User ID",
minlength: $.format("At least {0} characters required!"),
maxlength: $.format("Maximum of {0} characters allowed!")
}
,text_password: {
required: "Please enter a Password",
minlength: $.format("At least {0} characters required!"),
maxlength: $.format("Maximum of {0} characters allowed!")
}
}
});
});
CSS
.validation-error {
float: none;
color: #FF0000;
padding-left: 5px;
vertical-align: top;
}
HTML(表单)
<form id="loginform" class="login-form" method="post" action="process_login.php">
<div id="login_form-error">
<?php
if (isset($_GET['error']))
{
echo $_GET['error'];
}
?>
</div>
<div>
<label>User ID:</label>
<input id="text_user_id" name="text_user_id" type="text" onkeyup="user_id_change()"/>
</div>
<div>
<label>Password:</label>
<input id="text_password" name="text_password" type="password" onkeyup="password_change()"/>
</div>
<div class="login-form-buttons">
<input type="submit" value="Login"/>
</div>
任何帮助将不胜感激。
请看下图,除了错误之外,还显示了应用于输入框文本的 css,并且在没有错误的情况下,直接在下方输入文本恢复为默认值。总而言之,我希望输入框文本不受验证错误的影响。
谢谢