jQuery UI dialog + formularz ajaxowy

Mam formularz ajaxowy wyświetlony w okienku jquery dialog. Chciałbym, żeby button, który standardowo można dodać do tego okienka zatwierdzał ten formularz. Jedak wszelkie moje próby spełzły na niczym. Poniżej przedstawiam kod. Po kliknięciu na submita dodanego do formularza wszystko jest ok, tzn. idzie request ajaxowy, fragment strony się odświeża, okienko znika. Jednak ko kliknięciu na button dołączony do okienka, zamiast wysyłać się asynchronicznie, formularz wysyła się normalnie postem :confused: Czy to może na linii jquery/prototype? Jakiś inny pomysł? Rails 2.3.6, jquery 1.4.2, jqueryui 1.8.6

[code]


<%form_remote_tag( :url => {:controller => “assignments”, :action => “select_users”}, :html => {:id => ‘dialog_form’}) do %>
<% @users.each do |user| %>


<%= check_box_tag “users[#{user.id}]” %><%= user.surname+" “+user.name+”, “+user.title+” “+user.position+” na "+ user.department.pretty_name %>


<% end %>
<%= hidden_field_tag ‘lecture_id’, “” %>
<%= hidden_field_tag ‘group_type’, @group_type %>
<%= submit_tag “Dodaj”, :id => ‘add_user_submit’, :onclick => “jQuery(’#dialog_div’).dialog(‘close’);” %>
<% end %>
[/code] [code]$(function(){ jQuery('#dialog_div').dialog({ autoOpen: false, width: 600, height: 500, autoResize: false, buttons: { "Dodaj": function() { jQuery('#dialog_form').submit(); jQuery('#dialog_div').dialog('close'); } } });
    // Dialog Link
    jQuery('.dialog_button').click(function(){
            jQuery('#dialog_div').dialog('open');
            return false;
    });

});[/code]

Nie próbowane, ale:

jQuery("#dialog_form").trigger("submit"); // zamiast .submit()

skorzystaj z pluginu do formularzy w jQuery, rozwiązuje to problemy chyba wszelakie.

Hubert, niestety Twój pomysł nie działa. Spróbuję jeszcze ogarnąć sposób gotara.

Dzięki pluginowi wszystko sprowadza się do prostej rzeczy

http://jquery.malsup.com/form/

Tu masz przykład. U mnie działa świetnie.

Dziękuję pięknie gotar, działa jak należy :slight_smile:

Aha, nie doczytałem że masz Rails 2.3.6 – w 3.0 by zadziałało prawdopodobnie.

i nie używaj form_remote_tag a zwykly form_tag, daj mu tylko id i resztę przechwyć w js, dzięki wspomnianemu wcześniej pluginowi

Tak zrobiłem.