Observer not working for select field

Hi,

My code is as follows:
<select id="criteria[<%=count%>][type_id]" style="font-size: 11px;">
    <option value="0">select one</option>
    <%Report.get_criteria_array(report.model_list,
session[:app_user_id], term_type).each{|arr|%>
      <option value="<%=arr[0]%>">
              <%=arr[1]%>
          </option>
    <%}%>
</select>
<%= observe_field("criteria[#{count}][type_id]",
          :function => "term_selected(#{count},'#{report_key}')")%>

And the javascript that gets generated is:

<select style="font-size: 11px;" id="criteria[1][type_id]">
<option value="0">select one</option>
<option value="-1"> Company Name </option>
</select>
<script type="text/javascript"> //
1
2//<![CDATA[
3new Form.Element.EventObserver('criteria[1][type_id]',
function(element, value) {term_selected(1,'iEzMPeYD')})
4//]]>
5
</script>

But the observer doesnt fire whenever i select anything from the select
list.

I've tested it (with an alert call instead of term_selected) and it
works for me.
Maybe there's a javascript error in other part of the code?

Hi Neha,

Do you have Firebug installed? It would help (a lot) to know what JS it
says is being generated.
Best regards,
Bill

I believe that the observer on a select fires with "onChange" which
means you have to tab out of the select before the observer will
detect the change.

Fernando Lages wrote:

I've tested it (with an alert call instead of term_selected) and it
works for me.
Maybe there's a javascript error in other part of the code?

On 21 maio, 16:16, Neha Chopra <rails-mailing-l...@andreas-s.net>

My whole situation is like this:

I am using extjs for my tab layouts.
When i am getting a tab to be loaded i am making a call to a method and
from there i do
if(some condition)
  render :partial=>'x'
else
  render :partial=>'y'
end

When partial 'x' is rendered, upon some successful completion of an ajax
call i then render partial 'y' by doing

render :update do |page|
  page.replace_html 'div_id', :partial=>'y'
end

Now the issue is in partial 'y' i have an observer and it gets fired if
am coming to that partial from x and then y. But if i come to the y
partial straightaway the observer is not getting fired at all.

Can someone help me with what could be the difference that is not
letting the observer to fire.

So the observer works in all cases except for one.

Bill Walton wrote:

Hi Neha,

Do you have Firebug installed? It would help (a lot) to know what JS it
says is being generated.
Best regards,
Bill

<select style="font-size: 11px;" id="criteria[1][type_id]">
<option value="0">select one</option>
<option value="-1"> Company Name </option>
</select>
<script type="text/javascript"> //
1
2//<![CDATA[
3new Form.Element.EventObserver('criteria[1][type_id]',
function(element, value) {term_selected(1,'iEzMPeYD')})
4//]]>
5
</script>