Problem with RJS, params and Internet Explorer

Hi,

I have some RJS code to update my select fields. It perfectly works on
Firefox, but IE don’t want to send params to controller.

Here is the code in view:

<%= select(“incident”,“service_group_id”, @service_groups,{:selected =>
0},{
:onchange => remote_function(
:update => “incident_service_id”,
:url => {:action => :update_services},
:with => “‘service_group_id=’ + this.value”)
}) %>

So in Firefox I have following params for ex.:
{“action” => “update_services”, “controller” => “incidents”,
“service_group_id” => “2”}

But in IE:
{“action” => “update_services”, “controller” => “incidents”}

Tested on ruby 1.8, rails 2.3.4, Firefox 3.5, Internet Explorer 6,7,8

Hope, u help me

On Tue, Oct 6, 2009 at 2:23 PM, Alexei Spirit
[email protected] wrote:

:onchange => remote_function(
:update => “incident_service_id”,
:url => {:action => :update_services},
:with => “‘service_group_id=’ + this.value”)
}) %>

Are you sure that this.value is the way of access a select control
current value? Probably IE access it in a different way (as usual)
I’d strongly recommend you to access the value using Prototype or
jQuery or whatever JS library you’re using.


Leonardo M…
There’s no place like ~

When I’m doing like this:
:onchange => remote_function(
:update => “incident_service_id”,
:url => {:action => :update_services},
:with => “‘service_group_id=’ + alert(this.value)”)
IE shows write option value…

I’m using Prototype. So could u show me how to access this value by
Prototype library.

On Tue, Oct 6, 2009 at 2:47 PM, Alexei Spirit
[email protected] wrote:

When I’m doing like this:
:onchange => remote_function(
:update => “incident_service_id”,
:url => {:action => :update_services},
:with => “‘service_group_id=’ + alert(this.value)”)
IE shows write option value…

I’m using Prototype. So could u show me how to access this value by
Prototype library.
I’m not using Prototype since a while ago, but I think this should work.
http://api.prototypejs.org/dom/form/element.html#getvalue-class_method
(API docs are your friend.)


Leonardo M…
There’s no place like ~

<%= f.select(“service_group_id”, @service_groups,{:selected => 0},{
:onchange => remote_function(
:update => “incident_service_id”,
:url => {:action => :update_services},
:with => “‘service_group_id=’ + $F(‘incident_service_group_id’)”)
}) %>

I’d tried this way, but effect is the same, IE doesn’t transfer params
and FF does

On Tue, Oct 6, 2009 at 3:22 PM, Alexei Spirit
[email protected] wrote:

<%= f.select(“service_group_id”, @service_groups,{:selected => 0},{
:onchange => remote_function(
:update => “incident_service_id”,
:url => {:action => :update_services},
:with => “‘service_group_id=’ + $F(‘incident_service_group_id’)”)
}) %>

I’d tried this way, but effect is the same, IE doesn’t transfer params
and FF does
Did you try teh getValue() method?
try this:
:with => "‘service_group_id=’ +
$(‘incident_service_group_id’).getValue())


Leonardo M…
There’s no place like ~

Could it be concerned with session & cookies? I noticed that, when I
switch authorization off, onchange event works even in IE

It seems to me the promlem is not in JS, cause I can get select value
from page by any method.

In my opinion the problem in transfer ":with => " value in IE

Here is the auth system:


class ApplicationController < ActionController::Base
helper :all
include NtlmSystem

private

def user_required
if !logged_in?
redirect_to(’/login’)
end
end

def logged_in?
if session[:logged_in].nil? || session[:logged_in] == :false
return false
end
return true
end

end


class UsersController < ApplicationController
before_filter :user_required, :except => :login

def login
samaccountname = request.env[‘REMOTE_USER’]
cookies[:session] = session
if samaccountname.nil?
session[:logged_in] = :false
render :file => “#{RAILS_ROOT}/public/403.html”, :layout => false,
:status => 403
return
end
samaccountname.sub!(/OU\/,"")
@user = User.find(:first,:conditions => [“samaccountname =
?”,samaccountname])
if @user.nil?
session[:logged_in] = :false
render :file => “#{RAILS_ROOT}/public/403.html”, :layout => false,
:status => 403
return
end
session[:current_user] = samaccountname
session[:user_id] = @user.id
session[:logged_in] = :true
redirect_to session[:http_referer]
end

end


For NTLM authentication Mongrel_NTLM plugin used

Could it be problem here?