Form_remote_tag i firefox

Piszę sobie ostatnio różne pierdółki, żeby się z railsami zapoznać i natrafiłem na dziwną rzecz…

view:

[code=“ruby”]

<%= link_to_function(‘Add a comment’, “Toggle.display(‘add_comment’)”) %>

<%= image_tag ('loading.gif') %> Loding...
<%= form_remote_tag :update => 'comments', :url => { :action => 'comment', :id => @article.id }, :position => 'top', :complete => "Toggle.display(loading);", :html => {:id => 'create_comment_form', :action => url_for(:action => "comment_na", :id => @article.id ) }, :after => "$(create_comment_form).reset(); Toggle.display(add_comment);", :loading => "Toggle.display(loading);" %> <%= text_area 'comment', 'content', :cols => 30, :rows => 3 %>

<%= submit_tag 'Comment!' %> <%= end_form_tag %>
<%= render :partial => 'comment', :collection => @article.comments.reverse %>
[/code] controller: [code="ruby"] def comment render :partial => 'comment', :object => Article.find(params[:id]).comments.create(params[:comment]) end

def comment_na
Article.find(params[:id]).comments.create(params[:comment])
redirect_to :action => ‘show’, :id => params[:id]
end[/code]
W exploderze i operze wszystko działa, a w firefoxie po kliknięciu na submit wczytuje się akcja określona przez html. W ogóle nie jest wykonywany kod zawarty w onsubmit… *
Nie mam pojęcia dlaczego tak się dzieje. Prawdopodobnie nie zauważam tutaj jakiejś pierdółki :wink:
Będę wdzięczny za pomoc.
Pozdrawiam

EDIT:

  • jednak zonk… trochę inaczej to wygląda niż myślałem - wywołuje się zapytanie ajax’a i dodatkowo przeładowuje się strona… przez co dostajemy 2 komentarze… [:

Hmm sam uzywam form_remote_tag tyle, ze jestem zwolennikiem drugiego podejscia zamiast okreslac akcje jezeli AJAX nie moze byc grany… sprawdzam if request.xhr? i wszystko dziala.
Chyba wiele Ci to nie pomoze:)

No raczej nie :wink:
Jak nie określam action w :html, to normalnie forma się wysyła, przeładowuje się strona i robi się ten partial z metody comment - czyli to co miało się dodać do div’a comments jest na nowej stronie.

Dodam, że link_to_remote działa.

Znalazłem błąd. Teraz się zastanawiam czy w ogóle o tym pisać, bo wyjdę na kompletnego debila :wink:
W sumie i tak prędzej czy później ktoś zauważy :wink:

W funkcjach javascriptu podaje się identyfikatory elemntów… czyli wystarczy wziąć wszystko w apostrofy i śmiga aż miło… ( Toggle.display(‘loading’) na przykład). Zmyliło mnie to, że działało dobrze pod operą i exploderem. Zostawiłem w tym momencie javascript jako “działający”.

Wszystko wydaje się takie banalne jak człowiek wypoczęty wstaje rano. :wink:

Pozdrawiam