[/code]
Jest to formularz renderowany przez żądanie ajaksowe (w pliku rjs mam page.replace_html "overlay_hook", render(:partial=>"editor", :object=>@company)
).
Okienko dialogowe się pojawia, problem w tym, że chciałbym użyć standardowego przycisku okna dialogowego do wywołania ajaxowego submita formularza (przypięte zdarzenie onsubmit). Wolałbym uniknąć renderowania przycisku Zapisz (f.submit “Zapisz”). Jakieś PROSTE wyjście?
Eksperymentuję sobie z jQuery, ma kilka fajnych kontorlek (masked input text), któr e przydałyby się w mojej aplikacji.
Nie wiem, czy dobrze zrozumiałem Twój problem. Jeśli chcesz wysłać formularz nie używając przycisku submit, wystarczy ręcznie wywołać na nim zdarzenie submit:
$("#form_edit").submit()
Powyższy kod może zostać wywołany po kliknięciu w “standardowy przycisk okna dialogowego”.
O ile zauważyłeś mam w definicji okienka dialogowego coś taiego:
"Zapisz": function() {
$(this).dialog("close");
$('form:first').submit();
},
Niestety formularz nie wykonuje się ajaksowo, pojawia mi się biała strona z HTMLem + kodem JS (jakby ktoś przez h() przepuścił). Metoda create kontrolera:
# POST /companies.xml
def create
@company = Company.new(params[:company])
@next_action = :create
respond_to do |format|
if @company.save
format.js {
render :update do |page|
# todo highlighting
CompaniesController.reload_companies_list page#, :highlight => Company.find(@company.id)
end
}
else
format.js { render :action=>:editor }
end
end
end
Dodam tylko, że przycisk zapisz wygenerowany helperem (?) f.submit “Zapisz” działa prawidłowo.
Faktycznie, nie zauważyłem - trochę ciężko się czyta ten kod. Wywołanie submit() nie wysyła formularza Ajaksem, a standardowym zapytaniem. Jeśli chodzi Ci o to, żeby wysłać formularz Ajaksem, to musiałbyś ręcznie wywołać $.post z odpowiednio przygotowanymi parametrami, lub wykorzystać PROSTE rozwiązanie: http://www.google.pl/search?q=jquery+ajax+submit
Dzięki wielkie. Wczoraj w nocy nawet podobne zapytanie do google’a dałem, ale nie potrafiłem wykorzystać. Zaciemnienie. Użyłem tego plugina z pierwszego wyniku wyszukiwania, do teog zrezygnowałem z RJSów. Uzyskałem pożadany efekt
Jeszcze męczę się z przepchaniem idka do taga formularza, ale to dam radę.