2010-03-19 3 views
2

У меня ошибка RJS: TypeError: элемент имеет значение null при использовании ajax.Ошибка RJS: TypeError: element is null

Я использовал ввиду

<%= periodically_call_remote(:url=>{:action=>'get_user_list', :id=>'1'}, 
:frequency => '5') %> 

в контроллере

render :update do |page| 
    page.replace_html 'chat_area', :partial => 'chat_area', :object => [@chats, @user]  if @js_update 
    end 

в частичном chat_area

<% if [email protected]? && !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 %> 

Мой Div, присутствующий в 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> 

Любая помощь приветствуется.

С уважением,

Salil Gaikwad

+0

Элемент является недействительным означает, что существует DOM элемент на странице, что возвращенный javascript пытается получить доступ, который не может быть найден. Я не вижу проблему сразу, но это то, что означает ошибка. – Apie

ответ

4

Я выясню, почему это происходит, потому что я не закрывал div над «chat_area» должным образом. Единственное, что я сделал isclose в DIV и он работает как магия, Neways спасибо всем

Reagrds,

Salil Gaikwad

1

Это означает, что RJS пытается манипулировать что-то в выходной HTML, который не существует.

Похоже, проблема заключается в том, что вы хотите обновить свой user_list, но ничего с этим идентификатором не существует в вашем html. Убедитесь, что вы это визуализируете, также убедитесь, что атрибут update в вашем методе periodically_call_remote установлен на идентификатор элемента, который вы хотите обновить.

periodically_call_remote(:url => { :action => 'get_user_list' }, :update => 'get_user_list') 
Смежные вопросы