Problem polega na tym, że mam formularz zdalny, który na podstawie warunku, jest taki, aby konwertować na formularz niezajęty (za pomocą UJS), i następnie prześlij. uwaga w formularzu przesłano plik.Użyj JS, aby zmienić <form> ze zdalnego na niepodzielny w Railsach 3, HAML
Oto szczegóły: Mam wstępnie renderowane zdalny formularz używając
= form_for @myobj, :url => {:action=>"remoteAction", :controller=>"myobjects"}, :remote => true do |f|
... (f.fields....)
która produkuje HTML:
<form id="new_myobj" class="new_myobj" method="post" accept-charset="UTF-8" data-remote="true" action="/remoteAction">
Kiedy klikam submit, zgodnie z oczekiwaniami, formularz jest składany „AS JS ". w akcji kontrolera, robię pewne sprawdzanie pól wewnątrz przesyłanego formularza. Jeśli przechodzą wszystkie walidacje, i wykonać następujące .js.haml szablonu:
$('form#new_myobj').removeAttr("data-remote");
$('form#new_myobj').attr('enctype', 'multipart/form-data');
$('form#new_myobj').attr('action', '/myobjects/regularAction');
który skutecznie zmienia HTML na stronie (świadkiem przez Firebug) na adres:
<form id="new_myobj" class="new_myobj" method="post" accept-charset="UTF-8" enctype="multipart/form-data" action="/myobjects/regularAction">
ponieważ forma zawiera f.file_field, muszę przesłać jako wieloczęściowy, więc obraz może być przesłany, i nie mogę przesłać "AS JS" teraz, gdy klikam submit, akcja kontrolera "regularAction" jest rzeczywiście wywoływana, ale wciąż jest "AS JS" "
the quest jon jest, co jeszcze muszę zmienić w kodzie HTML, aby formularz mógł zostać przesłany w innym formacie niż xhr? czy jest powiązany z nagłówkami?
Dzięki za sugestię, więc dodałem wywołanie unbind() do mojego szablonu js.haml, ale drugie zgłoszenie nadal przechodzi do akcji "regularAction" AS AS ' –
$ (' form # new_myobj '). Unbind() $ (' form # new_myobj '). RemoveAttr ("data-remote"); ... –
czy jest jakiś inny komponent, który muszę rozwiązać? –