J'ai un problème similaire mais pas tout à fait le même que celui que j'ai vu beaucoup discuté. Je veux juste mettre ceci dehors au cas où n'importe qui a n'importe quel aperçu sur cette situation particulière. J'ai une série de boîtes de sélection et après que le dernier d'entre eux a été sélectionné, je veux mettre à jour un text_field avec du texte basé sur ce qui précède.replace_html dans Ruby on Rails génère TypeError
je le code suivant à mon avis (en fait dans une partie) pour la zone de sélection:
<%= f.collection_select :xyz_id, @xyzs, :id, :display_name,
{ :prompt => "Select a XYZ..." },
{ :onchange => "#{remote_function(:url => {:action => "update_text_field"},
:with => "'abc_id='+$('#foo_abc_id').val()")}",
:class => "blah" } %>
La méthode update_text_field
dans le contrôleur fait son travail et appelle replace_html
comme ceci:
some_info = foo.bar.first(:order => "id DESC").name
render :update do |page|
page.replace_html 'myDivId', :partial => "shared/my_partial", :locals => { :some_info => some_info }
end
Enfin, my_partial
ressemble à ceci:
<%= text_field_tag :special_info, some_info, :size => 20, :readonly => "readonly" %>
La partie qui contient cette partie a ceci:
<div id="myDivId"><%= render :partial => 'shared/my_partial',
:locals => { :some_info => some_info } %></div>
Effectué, tout fonctionne bien jusqu'à ce que le replace_html
qui jette une erreur RJS:
RJS error:
TypeError: Result of expression 'element.getElementsByTagName' [undefined] is not a function
Suivi par:
Element.update("myDivId",
"<input id=\"special_info\"
name=\"special_info\"
readonly=\"readonly\" size=\"20\"
type=\"text\" value=\"The right text\"
/>");
Tous des idées sur la cause de cette erreur?