Ich benutze JRails mit Ruby on Rails, so dass ich einfach jQuery verwenden kann, da ich mehr damit vertraut bin. Ich versuche auch, Low Pro zu verwenden, um einige meiner Formulare fernzusenden.Ruby on Rails, Low Pro und JQuery (über JRails)
Ich renne gerade in ein interessantes Problem, das mich ratlos hat. Ich habe folgend meine application.js
Datei hinzugefügt, und ich weiß, dass dies korrekt arbeiten, weil ich die Antwort zurückgegeben sehe (mit Firebug in Firefox):
$.ajaxSetup({
dataType: "script"
});
$(function() {
$('a.remote').attach(Remote.Link);
$('form.remote').attach(Remote.Form);
});
Alles, was ich tun muß, ist hinzuzufügen class="remote"
meine Links und Meine Formen und alles funktioniert super. Der dataType: "script"
Teil stellt sicher, dass es einen eval()
auf dem zurückgegebenen Antworttext ausführt, damit es die Seite korrekt aktualisieren kann.
Also, ich habe einen einfachen Link, der eine neue Sendung erstellt. In meiner new.js.rjs
Datei habe ich die folgenden:
page.insert_html :bottom, '#shipments_table',
:partial => 'test', :locals => { :shipment => @shipment }
Wenn ich diese ersetzen mit page.visual_effect :fade, '#shipments_table'
ist es, dass, wie man erwarten würde. Wenn meine _test.html.erb
Datei ziemlich einfach ist, funktioniert sie auch. Das Problem ist, wenn ich versuche, eine <form>
zu meinem Teil hinzuzufügen. Je nach Platzierung der <form>
Tags ergeben sich unterschiedliche Probleme. Zum Beispiel diese
<tr>
<form>
<td>Some Text</td>
</form>
</tr>
und diese
<form>
<tr>
<td>Some Text</td>
</tr>
</form>
machen absolut nichts erscheinen. Diese
<form></form>
<tr>
<td>Some Text</td>
</tr>
machen Some Text
erscheinen, aber es verliert alle meine Formatierung. Und diese
<tr>
<td>Some Text</td>
</tr>
<form></form>
funktioniert genau so, wie ich brauche (visuell gesprochen). Der offensichtliche Nachteil besteht jedoch darin, dass ich meine Formulareingaben nicht in die Tabellenspalten einfügen kann, was den gesamten Prozess im Grunde nutzlos macht. Ich kann das wahrscheinlich umgehen, indem ich sie alle auf eine Zeile innerhalb eines <div>
oder ähnlichem setze, aber ich würde es vorziehen, dass alles ausgerichtet wird.
Alle Ideen, wie man dieses Rätsel zu lösen, wäre sehr dankbar :-)
Danke für die Antwort, aber die Idee ist, dass der Benutzer mehrere gleichzeitig hinzufügen kann, was bedeutet, dass alle Formulare alle Formularelemente umhüllen würden, was nicht funktionieren würde. –
Nach ein bisschen Suchen, fand ich heraus, dass es einfach nicht erlaubt ist, ein Form-Tag in einen Tisch zu legen, so wie ich es versucht habe. Ich setze nun einfach die Eingaben in die Tabelle und benutze JavaScript, um die Daten zu serialisieren/zu senden, da es sich bei Verwendung von einfachem HTML verschlechtert, wenn JavaScript nicht verfügbar ist. Vielen Dank für Ihre Antwort. –