そもそも、getElementsByName 無いので、無いと思っていたのですが、 Form 単位で input 要素限定でもっといろいろ使えますが、id に name をセットして $ で直接参照したほうが早いとは思います。 関連する記事 prototype.js で、$(id) 関数が name 属性のみの場合 IE 以外で使えるようにする
<FORM id="frm" name="frm" method="POST" > <INPUT type="submit" name="send" value="送信" > <INPUT type="text" name="fld1" > <INPUT type="button" name="js" value="check" onClick=' alert( Form.getInputs("frm","","fld1")[0].value ) var frm = $("frm"); alert( frm.getInputs("","fld1")[0].value ); ' > </FORM>
フォーム経由の参照なので、画面内の構成が明示されるのはいいと思いますが、 フォームそのものには結局 id が必要になりますから、通常の WEB アプリで さほど便利だとは思えません。 空文字の引数は、type="タイプ" の文字列を指定するので、 getElementsByName の使用目的からすれば必要は無く、単に name で参照できると言う他は差はあり ません。やはり、 ($$("INPUT")).each(function(Element){Element.setAttribute("id",Element.name)}); するほうがいいと思います
タグ:prototype.js
|
【prototype.jsの最新記事】
- prototype.js (1.7.2) : Browser プロパティ
- prototype.js でブラウザの種類を知る為の簡単な拡張。
- prototype.js でクロスドメインの Ajax の読み込みテスト
- prototype.js で使っていたのをさらに短縮した IE かどうかの判断。
- Google の prototype.js を使う
- prototype.js : $ 関数
- prototype.js : 1.6.1と1.7_rc2 の evalJSON の違い
- JavaScript : prototype.js(1.6.1) の Try.these と XMLHttpRequest
- prototype.js の Object.extend でプロパティを追加する
- prototype.js で、$(id) 関数が name 属性のみの場合 IE 以外で使え無いのをとりあえず使えるようにする