Some simple test code should help, I think:
This code should produce no messages onload in Safari. Sadly, it might be hampered by some onload alert blocking if Safari does that. I don't know enough about the browser to say. Hopefully someone can adapt this test code to actually test it if that is the case. By all means write your own test code if mine doesn't work!
Update: It looks like Konqueror doesn't support the “onchange” event but it does “onclick”. Can a Safari user confirm that this is the same in Safari? I think the fix is to just have both onclick and onchange events with the same code and let it just run one extra time in some browsers which support both, but we'll have to test and make sure it doesn't break any currently-working browsers.