Ошибка RJS: TypeError: элемент равен нулю - PullRequest
2 голосов
/ 19 марта 2010

Я получил ошибку RJS: TypeError: элемент равен нулю при использовании ajax.

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

<%= 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 !@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 %>

Мой 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>

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

С уважением,

Салил Гайквад

Ответы [ 2 ]

4 голосов
/ 19 марта 2010

Я выяснил, почему это происходит, потому что я не закрыл div над "chat_area" должным образом единственное, что я сделал, это закрыл div, и он работает как по волшебству, neways спасибо всем

Reagrds

Салил Гайквад

1 голос
/ 19 марта 2010

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

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

periodically_call_remote(:url => { :action => 'get_user_list' }, :update => 'get_user_list')
...