RJS error: TypeError: element is null

11,705

Solution 1

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

Solution 2

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')
Share:
11,705
Salil
Author by

Salil

I'm a software engineering graduate from Nagpur University (BE) with good academic standing and strong professional experience. 12 year experience in Ruby, Ruby on Rails. Profound knowledge of working with dynamic and database-driven websites and services. Very solid understanding of Web 2.0 technologies HTML, XML, CSS, jQuery, jQuery-UI, Ajax and JavaScript. Knowledge of distributed revision control system like Git. Experience working with like PostgreSQL and MySQL database. Experience in Elastic Search Engine. Knowledge of NoSQL such as MongoDB. Experience with Agile, Iterative, and Test-Driven Development methods

Updated on June 04, 2022

Comments

  • Salil
    Salil almost 2 years

    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 [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 %>
    

    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