Hello,

Let's say I have the folowing code I can't change (it's not mine) :

<select name="myselect"  
onchange="this.nextSibling.visibility='hidden';">
        <option value="1">One</option>
        <option value="2">Two</option>
</select>

How can I put my own "change" event handler, but being able to run  
the original one as well?

I tried that :

$(document).ready(function() {
        var currentOption = $('[EMAIL PROTECTED] myselect] > option 
[EMAIL PROTECTED]').attr('value');
        var currentOnChange = $('[EMAIL PROTECTED]').attr('onchange');
        currentOnChange = currentOnChange.replace('/this/', '$(\'select 
[EMAIL PROTECTED]')');
        $('[EMAIL PROTECTED] myselect]').removeAttr('onchange');
        $('[EMAIL PROTECTED] myselect]').bind('change', function(event) {
                if (confirm('Are you sure?')) {
                        eval(currentOnChange);
                } else {
                        $('[EMAIL PROTECTED] myselect] > [EMAIL 
PROTECTED]').removeAttr 
('selected');
                        $('[EMAIL PROTECTED] myselect] > [EMAIL 
PROTECTED]'+currentOption 
+']').attr('selected', 'selected');
                }
        });
});

The eval doesn't seem to do anything. Any idea how to do this?


On a side note, I noticed that I had to use removeAttr() instead of  
unbind(), which was not doing anything.


-Nicolas

-- 
Nicolas "Brush" HOIZEY
Clever Age   : http://www.clever-age.com/
Gastero Prod : http://www.gasteroprod.com/
Photos : http://www.flickr.com/gp/[EMAIL PROTECTED]/M1c002
phpHeaven    : http://www.phpheaven.net/




_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/

Reply via email to