Wie man einen Teil von Javascript rendert

8

Ich habe eine Auswahl, die abhängig von der Auswahl in einem anderen ausgewählt wird Um dies zu tun, habe ich getan, was in Railscast # 88 in 'Dynamic Select Menus' empfohlen wird.

Aber jetzt muss ich einen Teil rendern, indem ich den Wert übergebe, der in jedem dieser Selects ausgewählt wurde. Ich kann nicht herausfinden, wie man einfach einen Methodenaufruf aus dem: onchange-Ereignis im select auslöst, also denke ich, dass ich render: partially aus dem JavaScript-Handler heraus aufrufen muss, der das selects change-Ereignis erkennt. Aber ich kann nicht herausfinden, wie. Ich habe Folgendes in der JavaScript-Methode (in der .js.erb-Datei) versucht, aber es funktioniert nicht wie erhofft:

%Vor%

Hat jemand eine gute Lösung?

    
99miles 25.02.2010, 02:17
quelle

2 Antworten

5

Sie können keine partielle Innenseite von JavaScript rendern, um Änderungsereignisse zu erkennen. Ruby ist Server-Seite und JavaScript ist Client-Seite. Zu dem Zeitpunkt, zu dem JavaScript ausgeführt wird, wurde Ihr Ruby bereits in normales HTML umgewandelt.

Am besten gehen Sie folgendermaßen vor:

Benutze ein AJAX-Steuerelement (es gibt prototype / scriptaculous), um deinen Server im onchange-Event zu treffen. Ihr Server kann RJS zurücksenden, um die anderen Dropdown-Listen zu aktualisieren, oder kann Standard-JSON zurückgeben und Sie können die anderen Dropdown-Listen manuell in der onSuccess -Methode des AJAX-Aufrufs ausfüllen.

    
Mike Trpcic 25.02.2010, 02:33
quelle
8

Ich denke, das ist es wonach Sie suchen. Ich rendere das Partial innerhalb eines DIV mit der ID "colors", das Partial wird nur gerendert, wenn der Wert des ausgewählten Radio Buttons rot ist:

%Vor%     
miligraf 10.06.2011 17:26
quelle

Tags und Links