Jquery Ajax-Request und Fehlerausgabe unter Inputfeldern klappt nicht

Maniac

Erfahrenes Mitglied
Ich habe ein Formular welches ich mit jQueryUI-Dialog abschicke und mit PHP-Validiere.
Zurück bekomme ich einen JSON-Object bei Fehlern oder ein "true" wenn kein Fehler besteht.

Wenn Fehler da sind, schreibe ich unter die Input-Felder eine Liste mit dem Fehler.
Im FireBug wird mir diese Liste "grau" angezeigt und in der Ansicht wird sie nicht sichtbar.

Und hier liegt mein Problem, warum wird es im Firebug grau angezeigt und im Brwoser überhaupt nicht?

Hier der Code:
Code:
//<![CDATA[
$(document).ready(function() {
    $('#testLink').live('click',function(){
          $('#testFormDialog').dialog('open');
          return false;
    });
    $("#testFormDialog").dialog({
          "tabPosition":"top",
          "width":800,
          "autoOpen": false,
          "buttons":{
               "ok": function() {
                      validateForm("testForm"); 
                } 
            }
     });
});
function validateForm(formId){
	var inputData = $(':input', '#'+ formId);
	var url 	  = '/validate/request';
	
        // FireBug-Kosnole
	console.log(inputData);
	
        // ajax-request
	$.post(url, inputData, function(response){	
		
		if(response == true)
		{
			alert('Validierung erfolgreich');
		}
		else
		{	
                        // was wird zurückgeliefert
			console.log(response);
			
                        // 1. Schleife vom Objekt
			$.each(response,function(i,val){			
				// 2. Schleife vom Objekt
				$.each(val,function(l,msg){
		                    // Falls Fehler vorhanden, entfernen 
        			    $('#'+i).find('.errors').remove();
                                    // Fehler-Liste unter input-Element setzen
        			    $('#'+i).append(getErrorHtml(msg,i));
        			
        		});	
        		
        	});
		}
	},'json');	
}

function getErrorHtml(errors,id)
{
	var o = '<ul id="errors-'+id+'" class="errors">';	
		//for(errorKey in errors)
		//{
			o += '<li>' + errors/*[errorKey]*/ + '<\/li>';	
		//}
		o += '<\/ul>';
	
	return o;
}
//]]>

Edit: konnte das Problem lösen, indem ich in der Funktion "validateForm" wo ich die Fehler unter die Inputs schreiben lasse ein "parent()" am Selector angehängt hab. Ist mir zwar schleierhaft warum das so ist, weil er im FireBug ja die Errors anzeigt unter den Inputs, nur im Browser nicht.
So funktioniert halt...

Code:
$('#'+i).parent().find('.errors').remove();
$('#'+i).parent().append(getErrorHtml(msg,i));
 
Zuletzt bearbeitet:
Zurück