RJS error: TypeError: element is null
I got RJS error: TypeError: element is null while using ajax.
I used in view
<%= periodically_call_remote(:url=>{:action=>'get_user_list', :id=>'1'},
:frequency => '5') %>
in controller
render :update do |page|
page.replace_html 'chat_area', :partial => 'chat_area', :object => [@chats, @user] if @js_update
end
in partial chat_area
<% if !@chats.blank? && !show_div(@chats).blank?%>
<% show_div_id=show_div(@chats) %>
<% for chat in @chats %>
<div class="popup" id="chat_area_<%= chat.id %>"
style="display:<%= (chat.id == show_div_id)? 'block' : 'none' %>;">
<% form_remote_for(:chat, :url => {:controller=>'chats',
:action=>'create', :id=>1}, :html=>{:name => "form_#{chat.id}"},
:complete=>"resetContent('#{chat.id}');") do |f| %>
<div style="display:none;">
<%= f.hidden_field :sessionNo, :value=>chat.sessionNo %>
<%= f.text_area :chatContent, :id=>
"chatContent_field_#{chat.id}", :cols=>"100", :rows=>"6",
:onKeyPress=>"return submitenter(this,event)开发者_开发知识库;" %>
</div>
<input type="image" src="images/chat/send-hover.png"
value="Send" onclick="return submit_button('<%= chat.id %>')"/>
<% end %>
</div>
</div>
<% end %>
<% else %>
<div class="popup" id="chat_area_none" style="display:'block';">
<input type="image" disabled ="disabled"
src="images/chat/send.png" style="cursor:default;" value="Send" />
</div>
<% end %>
My div present in index.html.erb
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tbody><tr>
<td align="left" width="80%" valign="top" style="">
<%= text_area :chat, :chatContent, :id=> "chatContent_field", :cols=>"100", :rows=>"6" %>
</td>
<td align="left" width="20%" valign="bottom" style="padding-left:10px;padding-left:10px;x" >
<div id="chat_area">
<%= render :partial => 'chat_area' %>
</div>
</td>
</tr>
</tbody>
</table>
Any help is appreciated.
Regards,
Salil Gaikwad
I find it out why it happens because I didn't close div above the "chat_area" properly. the only thing i did isclose the div and it works like a magic, neways thanks to all
Reagrds,
Salil Gaikwad
This means that RJS is attempting to manipulate something in html output that doesn't exist.
It looks like the problem is that you want to update your user_list
but nothing with that id exists in your html. Make sure you are rendering that, also make sure you have the update
attribute in your periodically_call_remote
method set to the id of the element you want to update.
periodically_call_remote(:url => { :action => 'get_user_list' }, :update => 'get_user_list')
精彩评论