问题图片: http://tinypic.com/view.php?pic=2duwlsp&s=5
问题描述:我有一个 jQuery 表单验证“有效”,除了一个视觉错误。当您第一次导致验证错误时,一切都会按预期显示。但是,如果您修复错误,然后重新导致错误,则图像不会在第二次出现。
有关问题的图片,请参见上面的屏幕截图。
我的代码:
<script type="text/javascript">
$(document).ready(function(){
$('#signupform').validate({
wrapper: 'span class="error"',
meta: 'validate',
highlight: function(element, errorClass, validClass) {
if (element.type === 'radio') {
this.findByName(element.name).addClass(errorClass).removeClass(validClass);
} else {
$(element).addClass(errorClass).removeClass(validClass);
}
// Show icon in parent element
var error = $(element).parent().find('span.error');
error.siblings('.icon').hide(0, function() {
error.show();
});
},
unhighlight: function(element, errorClass, validClass) {
if (element.type === 'radio') {
this.findByName(element.name).removeClass(errorClass).addClass(validClass);
} else {
$(element).removeClass(errorClass).addClass(validClass);
}
// Hide icon in parent element
$(element).parent().find('span.error').hide(0, function() {
$(element).parent().find('span.valid').fadeIn(200);
});
},
"rules":{"username":{"required":true,"remote":{"url":"http:\/\/localhost\/welcome\/remote","type":"post"}}},"onkeyup":false});
});
</script>
我的尝试:我尝试查看突出显示和取消突出显示功能。我的“猜测”是错误在“取消突出显示”部分,因为它只发生在第二个错误之后(即突出显示、取消突出显示、突出显示->错误)
所以也许我正在删除我不应该删除的内容?
最佳答案
解决了。变化
// Show icon in parent element
var error = $(element).parent().find('span.error');
error.siblings('.icon').hide(0, function() {
error.show();
});
到
// Show icon in parent element
var error = $(element).parent().find('span.error');
error.show();
},
关于jQuery 验证在第二次错误时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10120523/