JavaScriptを自由に使えない?

例えば0〜100個まで可変に並ぶ数値が入力されているテキストボックスの値を、合計欄に表示するJavaScript。これはサーバサイドでなくクライアントで処理したい。こういう場合にテキストボックスへはどうアクセスしたら良いんだろう?onchangeイベントで数値を再計算する事はできるけど、onloadイベントで最初に合計値の計算をする事ができない。

なぜならテキストボックスのid属性、name属性が固定じゃないから。素直に(小ざかしい事なしで)アクセスする事はできないんだろうかと試行錯誤中。これうまくいかないとS2JSFからS2Strutsに変更するかも。とりあえず何も分かってないので、JSFの知識を習得!

onloadイベントでユーザIDを入力するテキストボックスにフォーカスを当てるスクリプトも未だ素直には書けず。↓こんなの

onload="document.forms[0].userId.focus();"

HTMLに記述されているname属性と、実際に出力されたHTMLのname属性を保持しているMapみたいなオブジェクトは無いのかなぁ?

onload="getComponent('userId').focus();"

なーんて書けたら素敵。もちろん最適な答えをまだ知らないので激しく妄想です。

#追記
例えばid属性にuserIdと指定した場合、実際に表示した時のid, name属性は _idNN:userIdとなるから、フォームの全てのエレメントを走査すれば探せない事は無いけれど、バリデータのためにid属性は日本語を使っているので手間がかかる上、id属性を変更するような仕様変更に弱い。解決方法はいくつかあれど、どれも素直ではないかな。