我遇到的问题与我见过的很多问题类似但不完全相同。只是想把它放在这里,以防任何人对这种特殊情况有任何见解。我有一系列选择框,在选择了最后一个框之后,我想根据上面的内容更新text_field文本。
我的视图中有以下代码(实际上是部分代码):
<%= 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错误:
TypeError:表达式的结果 'element.getElementsByTagName' [undefined]不是函数
其次是:
Element.update("myDivId",
"<input id=\"special_info\"
name=\"special_info\"
readonly=\"readonly\" size=\"20\"
type=\"text\" value=\"The right text\"
/>");
有关此错误原因的任何想法?
答案 0 :(得分:0)
我现在有这个工作。
经验:
上面的列表肯定是“足够的”,但我不确定那里的所有内容是否“必要”,但我将继续使用上面列表中的所有其他动态输入字段我的表格。