0
我遇到类似问题,但不像我见过的很多。只是想把这个放在这里,以防有人对这种特殊情况有所了解。我有一系列选择框,在选择了最后一个选框之后,我想根据上面的内容更新一些文本字段。Ruby on Rails中的replace_html生成TypeError
我有我的观点(在部分实际上)的选择框下面的代码:
<%= 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" } %>
控制器中update_text_field
方法做其工作,并呼吁replace_html
像这样:
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
最后,my_partial
看起来是这样的:
<%= text_field_tag :special_info, some_info, :size => 20, :readonly => "readonly" %>
包含此部分的部分具有这样的:
<div id="myDivId"><%= render :partial => 'shared/my_partial',
:locals => { :some_info => some_info } %></div>
运行时,一切运作良好,直到它抛出一个RJS错误replace_html
:
RJS error:
TypeError: Result of expression 'element.getElementsByTagName' [undefined] is not a function
其次:
Element.update("myDivId",
"<input id=\"special_info\"
name=\"special_info\"
readonly=\"readonly\" size=\"20\"
type=\"text\" value=\"The right text\"
/>");
任何关于这个错误原因的想法?