WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:element名を引数で取得できる?

0:[投稿] Aki [2003/01/17 14:10 ][環境:IE4.01〜 winXP]

こんにちは、Akiと申します。

Javascriptでformのelement名を引数で取得し、参照することは可能なのでしょうか?

下記のようなことをしたいのですが

<FORM METHOD="POST" NAME="frm">
<table border="1">
<tr>
<th><A HREF="javascript:allCOPY(frm, t1)">先頭行を全てコピー</A></th>
<th><A HREF="javascript:allCOPY(frm, t2)">先頭行を全てコピー</A></th>
</tr>
<tr>
<td><INPUT NAME="t1" SIZE="5"></td>
<td><INPUT NAME="t2" SIZE="5"></td>
</tr>
<tr>
<td><INPUT NAME="t1" SIZE="5"></td>
<td><INPUT NAME="t2" SIZE="5"></td>
</tr>
</table>
</FORM>

<SCRIPT LANGUAGE="JavaScript">
    function allCOPY(f, el){
    var i=0;
      if (f.el.length) {
        for (i = 0; i < f.el.length; i++) {
          f.el[i].value = f.el[0].value;
        }
      }
    }
</SCRIPT>

全く同じ処理を各elementで行いたい為、element名から参照できればいいなと思ったのですが…。

ご教授よろしくお願い致します。


1:[回答] ごだっち [MAIL] [2003/01/17 14:40 ]

Win2k + IE6では、こんな感じで出来るみたいです。

※先頭の行に入力された値を、以降の各セルにコピー&ペーストする処理を一括して行うには?という質問内容で宜しかったでしょうか。


<html>
<head>
<script>
<!--
function allCOPY(f, el){
    var obj=document.all(el);
    if(obj.length){
        for(i=1; obj.length>i; i++){
            obj[i].value=obj[0].value;
        }
    }
}
//-->
</script>
</head>
<body>
<form nameE="frm">
<table border="1">
<tr>
<th><a href="javascript:allCOPY('frm', 't1')">先頭行の値を全てにコピー</A></th>
<th><a href="javascript:allCOPY('frm', 't2')">先頭行の値を全てにコピー</A></th>
</tr>
<tr>
<td><input name="t1" size="5"></td>
<td><input name="t2" size="5"></td>
</tr>
<tr>
<td><input name="t1" size="5"></td>
<td><input name="t2" size="5"></td>
</tr>
<tr>
<td><input name="t1" size="5"></td>
<td><input name="t2" size="5"></td>
</tr>
<tr>
<td><input name="t1" size="5"></td>
<td><input name="t2" size="5"></td>
</tr>
<tr>
<td><input name="t1" size="5"></td>
<td><input name="t2" size="5"></td>
</tr>
</table>
</form>
</body>
</html>


2:[回答] andi [2003/01/17 16:00 ]

getElementsByName('name')を使うのが簡単かな。
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&c2coff=1&q=getelementsbyname&lr=lang_ja


3:[完了] Aki [2003/01/20 10:22 ]

お世話になります。Akiです。

ごだっち 様、andi 様、ご返答ありがとうございます。
/* -- source start -- */
   function allCOPY(f, el){

     var obj = document.getElementsByName(''+el); // getElementsByName
     var obj=document.all(el);                    // document.all[]

     if(obj.length){
       for(i=1; obj.length>i; i++){
         obj[i].value=obj[0].value;
       }
     }
   }
/* -- source end -- */

どちらの方法でも、期待する結果が得られました。


ごだっち 様、記述がわかりずらくて申し訳ありませでした。

ご教授ありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World