2016-04-25 12 views
0

Ich habe die unten jQuery-Code, um die Start- und Endtermine zu überprüfen, aber die Fehlermeldung zeigt nur einmal und wenn der Benutzer das Enddatum mit falschen Werten geändert wurde, wurden keine Fehlermeldungen erzeugt. Gibt es etwas, das ich vermisse?Fehlermeldungen wurden nur einmal erzeugt

$('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("&nbsp;&nbsp;&nbsp;&nbsp;<font color='red'>"+XMLHttpRequest.responseText+"</font>").fadeOut(5000); 
      endDate.focus(); 

     } 
    }) 

}); 

Antwort

1

Dies liegt daran, wenn Sie fadeOut() auf die Fehlermeldung Container aufrufen, es seine display Eigenschaft auf none setzt. Wenn Sie versuchen, dasselbe Element wiederzuverwenden, ist es bereits ausgeblendet. Sie können dafür sorgen, dass das Element sichtbar ist, bevor es ausgeblendet wird:

error: function(XMLHttpRequest, textStatus, errorThrown) { 
    errorSpan.html("&nbsp;&nbsp;&nbsp;&nbsp;<font color='red'>"+XMLHttpRequest.responseText+"</font>") 
    errorSpan.show() 
    errorSpan.fadeOut(5000); 
    endDate.focus(); 
}