2 onchange functions - 1 jquery, 1 prototype - not working in safari

Hi all,

Im using the jNice plugin on a select box in a form of mine. Im also
calling a custom JS function which uses prototype on the same select
box.

<%= f.collection_select :item_name, Item.all, :item_for_order, :name,
{ :name => “select”, :onchange => “item_row($(this));”} %>

now both jNice and item_row() work in FF when i change the selected
value. But it does not work in Safari. In safari, the page jumps to
the top when i click on a selection, if i click on it again, jNice
works. item_row() does not.

Now im not sure what the problem is. Im using jQuery.noConflict to
avoid conflict between the two libraries and otherwise, the JS heavy
page is working fine.

Anyone with any experience/ tips on this one?

Vinay.

i narrowed down the issue to one line of code in the item_row
function. it tries to insert a value into a hidden_field which is kind
of hanging inside

tags. Here’s the HTML and JS code…

HTML

.... .... <%= f.collection_select :item_name, Item.all, :item_for_order, :name, { :name => "select", :onchange => "item_row($(this));"} %>

JS

function item_row(element){

id = /* calculation excluded for brevity */
(element).up(’.row’).down(’.item_id’).value = id ; //this is the
line that fails in safari but works in FF

}

Anything wrong with my HTML structure that Safari is rejecting?

thanks.

hi
i faced the similar prob b4 1 month and then i find out this solution
cange
the function from onchange to onclick. this onchange not works with
IE7
as well.ff works perfectly.

nirosh

I actually just solved it by putting the hidden_field inside another

instead of leaving it hanging outside. I have not checked in IE7. thanks for the heads-up! :)

2009/8/7 nirosh [email protected]

On Aug 7, 9:35 am, Ram [email protected] wrote:

type=“hidden” />

Vinay.


In Sport We Trust !!!

On Aug 7, 5:35 am, Ram [email protected] wrote:

Anything wrong with my HTML structure that Safari is rejecting?

You shouldn;t have an input element there - The direct children of a
tr tag should only be td tags (or similar (th etc.))

Fred

Hmmm… this is what I have now. Is this ok?

.... ....
 <td>
       <%= f.collection_select :item_name,

Item.all, :item_for_order, :name, { :name => “select”, :onchange =>
“item_row($(this));”} %>

2009/8/7 Frederick C. [email protected]

Fred

calling a custom JS function which uses prototype on the same select
Now im not sure what the problem is. Im using jQuery.noConflict to
avoid conflict between the two libraries and otherwise, the JS heavy
page is working fine.

Anyone with any experience/ tips on this one?

Vinay.


In Sport We Trust !!!

Im actually having another interesting issue with this table structure
im
having. I provide a link to add another row to the table. The structure
is
like this…
HTML

<%= render :partial => "item", :collection => @order.items %>

<tr

onmouseover=“document.getElementById(‘plussign’).style.display=‘block’;”
onmouseout=“document.getElementById(‘plussign’).style.display=‘none’;”
id=“empty_record”>

<%= add_item_link "+" %>

_item.html.erb

helper method

def add_item_link(name)
link_to_function name do |page|
page.insert_html :bottom, :items, :partial=>‘item’, :object =>
Item.new
end
end

I was using this successfully when my structure was all in

s. I
just
inserted a container div with id ‘items’ at the bottom of which i wanted
the
new item row. now i cant use
s in between. How can I achieve this
functionality? Any ideas?

thanks…

2009/8/7 Vinay S. [email protected]

       <%= f.collection_select :item_name,

On Aug 6, 4:51 pm, Ram [email protected] wrote:

{ :name => “select”, :onchange => “item_row($(this));”} %>
Anyone with any experience/ tips on this one?

Vinay.


In Sport We Trust !!!


In Sport We Trust !!!