我有以下jQuery代码来检查开始和结束日期,但错误消息仅显示一次,如果用户使用任何错误值更改结束日期,则不会生成错误消息。有什么我想念的吗?
$('input[name="endDate"]').change(function(){
var startDate=$('input[name="startDate"]');
var endDate=$('input[name="endDate"]');
var errorSpan= $('.errorSpan');
$.ajax({
url:'${createLink(controller:'empRef', action: 'checkServiceDatesAjax')}' ,
type:'POST' ,
data:{startDate:startDate.val(), endDate:endDate.val()} ,
success: function(XMLHttpRequest, textStatus, jqXHR) {
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
errorSpan.html(" <font color='red'>"+XMLHttpRequest.responseText+"</font>").fadeOut(5000);
endDate.focus();
}
})
});
答案 0 :(得分:1)
这是因为当您在错误消息容器上调用fadeOut()
时,它会将其display
属性设置为none
。当您尝试重用相同的元素时,它已被隐藏。您可以通过确保元素在淡出之前可见来使其工作:
error: function(XMLHttpRequest, textStatus, errorThrown) {
errorSpan.html(" <font color='red'>"+XMLHttpRequest.responseText+"</font>")
errorSpan.show()
errorSpan.fadeOut(5000);
endDate.focus();
}