• ベストアンサー

フォームのNAMEを変数に格納して使用できる?

Mugiの回答

  • ベストアンサー
  • Mugi
  • ベストアンサー率84% (11/13)
回答No.2

ボケてました。evalなんか要らないです。 document.myForm.elements['T10'+n].value=100

noname#1802
質問者

お礼

できましたぁ~♪ ありがとうございます。 昨日からはじめてJAVA SCRIPTを勉強はじめまして いろんなサイトを巡っていたのですが・・・ ここがやっぱ一番役に立ちそうですよね^^ (極力自分で調べるようにしていますが・・・) どうもありがとうございました。

関連するQ&A

  • 一定間隔ごとに、フォームにデータを入力して送信したい

    (1)まず「document.フォーム名.識別名.value=データ;」でデータを入力し(2)次に「document.フォーム名.submit();」で送信すれば実現できるかと試してみたのですが、成功しませんでした。 恐れ入りますが、正しい方法を教えていただけると大変助かります。何卒よろしくお願いいたします。 ちなみに具体的には下記のように記述して試しました。 function cookie(){ //↓1クッキー(classname)を取り出し (省略); } function mySubmit(){ //↓2-(1)取り出したクッキーをフォームに入れて document.myFORM3.cname.value=classname; //↓2-(2)フォームの送信 document.myFORM3.submit(); } // --></script> </head> <body onLoad=\"cookie();setTimeout(\'mySubmit()\',20000)\"> ↑ページが読み込まれたら 1クッキーを取り出して 2(1)それを20秒ごとにフォームに入れて(2)送信 <form name=\"myFORM3\" method=\"post\" action=\"A.cgi\" target=\"I2\"> ↑送信結果はインフレームに表示 <input type=\"hidden\" name=\"cname\"> </form> <iframe name=\"I2\" width=\"756\" height=\"162\" ></iframe> 何卒よろしくお願いいたします。

  • 変数にフォーム名を指定したい

    下のスクリプトは、プルダウンメニューの項目を選択するとフォームにそのvalueを渡すものです。 フォームに original という name を指定しています。 putselect関数の中の document.reg.original の original を直で打つのではなく、 putselectの引数として、指定したのですがどのようにすると良いでしょうか? JavaScript function putselect(obj){ document.reg.original.value = obj.options[obj.selectedIndex].value; } HTML <form name="reg"> <input name="original"> <select onchange="putselect(this)"> <option >#作品の選択</option> <option value="a">A</option> <option value="b">B</option> <option value="c">C</option> </select> </form> <hr> こうなってほしい。 function putselect(obj,フォーム名の変数){ document.reg.フォーム名の変数.value = obj.options[obj.selectedIndex].value; } HTML <form name="reg"> <input name="original"> <select onchange="putselect(this,original)"> <option >#作品の選択</option> <option value="a">A</option> <option value="b">B</option> <option value="c">C</option> </select> </form> <hr> これと同じ動作であれば、nameでなくidなどでも構いません。 よろしくお願い致します。

  • フォームチェックで変数は使えませんか?

    いろいろなフォームに対応する汎用チェックスクリプトを 書いているのですが、 strName = strcChecks[i]; var a = document.forms[0].strName.value;                ▲               この部分 ・・・・の名前指定の際、変数が使えないのでしょうか。 たくさん入力するテキストボックスやらチェック ボックスがあって一つ一つ、document.forms・・・ と書くのが手間なので何か方法があれば・・・

  • JavaScript制御のフォームを1ページに複数設置するには?

    先日こちらのサイトで、1つのセレクトボックスで1度に複数の情報をCGIに渡す方法を教えて頂き、 <script type="text/javascript"> <!-- function func() { var n = document.F1.S1.selectedIndex; var d = document.F1.S1.options[n].text.split(" "); document.H1.AA1.value=d[1].slice(0,-1); document.H1.AA2.value=d[0]; document.H1.AA3.value=document.F1.T1.value; document.H1.submit(); } // --> </script> <form name="F1" action="#"> <select name="S1"> <option>3本セット 100円 <option>7本セット 200円 </select> <input type="button" value="カートへ" onclick="func()"> </form> <form name="H1" action="cart.cgi"> <input type="hidden" name="AA1">  ・  ・ <input type="hidden" name="AA3"> </form> というフォームを作ったのですが、同じページに同様のフォームがもう一つ必要になりました。 そこで上記ソースに、フォーム名や変数名を変えたScript <script type="text/javascript"> <!-- function func() { var n = document.F2.S2.selectedIndex; var d = document.F2.S2.options[n].text.split(" "); document.H2.AA4.value=d[1].slice(0,-1); document.H2.AA5.value=d[0]; document.H2.AA6.value=document.F2.T2.value; document.H2.submit(); } // --> </script> を追加し、 これに対応するフォームも追加したのですが、1つめのフォームから「カートへ」でデータを送っても2つめのフォームの内容が送信されてしまいます。 どこをどう直したらよいのでしょうか?

  • javaスクリプトによりフォーム入力

    javaスクリプトによりフォーム入力を製作中です。 ラジオボタン、チェックボックス、プルダウン選択を選択すると、同ページのテキストエリアにそれらを選択した時点で反映されるというものです。 html構造として table/ 項目1 項目2 項目3 項目4 ・ ・ ・ ------ テキストエリア ------ /trable となっていきます。 var copytoclip=1 function CopyAll(mytext) { var tempval=eval("document."+mytext) tempval.focus() tempval.select() if (document.all&&copytoclip==1){ therange=tempval.createTextRange() therange.execCommand("Copy") setTimeout("window.status=''",1800) } } function setChars(form) { if(form.n1[0].checked) { str1 = document.myform.n1[0].value } else if(form.n1[1].checked) { str1 = document.myform.n1[1].value } else if(form.n1[2].checked) { str1 = document.myform.n1[2].value } else { str1 = "テキストテキスト" } /*下がテキストエリアへ反映される*/ document.myform.mytext.value = "hogehoge" + str1 +・・・・ + "\n\n" } といったものです。 【苦戦しているところ】 選択項目がひとつしかない場合に、チェック項目を作成しても テキストエリアへ反映されません。 -・--・--・--・--・- また、これとは別によりいいサンプル等ありましたら、教えていただけるとありがたいです。

  • プロパティ名に変数を連結する

    javascriptによるWebサイト内のフォーム内容入力チェックを行っています。 <input type="text" name="text1"> <input type="text" name="text2"> <input type="text" name="text3"> . . というように連番で付けられたフォーム部品があった場合 if(document.myForm.text1.value==""){flag=1;} if(document.myForm.text2.value==""){flag=1;} if(document.myForm.text3.value==""){flag=1;} のようにしてやれば空欄チェックが行えますが これがいくつもある場合、textの後に続く番号をfor等で 繰り返し処理によって行う場合、どのように記述するでしょうか。 試しに for(i = 0 ; i <= 100 ;i++){ var text; hoge = "document.myForm.text" + i + ".value"; if(hoge == ""){flag=1;} } のようにしましたが、この方法だとhoge自体が文字列として みなされてしまいプロパティの指定ができなくなっている(?)のでしょうか。 ご助言いただけると助かります。

  • 保存先のパスを変数に格納して使用する方法

    マクロ実行の際に、保存先をプログラムした場所とは別の場所にしたい場合、いちいち変更箇所(1つのプログラムで5か所くらいあります)を修正するのが面倒です。そこで、変更するアドレス(パス?)を変数に格納してそれを使い回したいのですがどうすればいいでしょうか? 例えば、 "C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ" というアドレスを m に格納して、 m = C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ として、 ChDir ""& m &"" と使えたら理想なのですが、できますでしょうか? また、変数を使えたとして、上記の書き方は正しいのでしょうか? 間違っていた場合、ChDirに変数を使用するときの書き方もご教授いただけたら助かります。 よろしくお願いします。

  • 選択フォームへの追記について

    現在、下記のように一つのフォームの場合は、 ボタンを押すと追記されますが、 複数のフォームがある場合に、 選択されているフォームへ、 追記するには、どうすればよろしいでしょうか、 よろしくお願いいたします。 <html> <head> <script language="JavaScript"><!-- CR = String.fromCharCode(13); function setData(param) { txt = document.myFORM.myTEXT.value + param + CR; document.myFORM.myTEXT.value = txt; } // --></script> </head> <body> <form name="myFORM"> <input type="button" value="月曜日" onClick="setData('月')<br> <input type="button" value="火曜日" onClick="setData('火')"><br> <textarea rows="9" cols="20" name="myTEXT"></textarea><br> </form> </body> </html>

  • 代入の基礎?

    あけましておめでとうございます。 下記は「n」の値によって年月日の値を変更しようとしています。n=2の時は今日の日付を入れます。これはOK。それ以外の時は「最初に年月日のフォームに表示された値」を「mydate」に代入したものを表示したいのですが、下記だと直前に年月日に表示されたものになってしまうようです。基本的なこととは思いますが、助言いただけないでしょうか。 function set( n ) { mydate = document.myFORM.年月日.value if(n == 2) {document.myFORM.年月日.value = "今日の日付を入れる"}; else {document.myFORM.年月日.value = mydate} }

  • WSHを使ってフォームに書き込みがしたい

    はじめまして。 今仕事で、VBSを使って他サイトのフォームに自動的に書き込みを行うスクリプトを作成しています。 以下のようなVBSファイルを作成しています。 Set IEShell = CreateObject("Shell.Application") num = IEShell.Windows.Count For i = 0 to num - 1 WinName = IEShell.Windows.Item(i).LocationName WinPath = IEShell.Windows.Item(i).LocationURL If WinName="ウィンドウ名" Then IEShell.Windows.Item(i).document.myFORM.text.value="フォームに書き込みする内容" End If Next 予め書き込みをしたいページをIEで表示させておき、スクリプトを実行すると自動的にフォームに書き込みを行うスクリプトを作成しました。 上記のスクリプトで上手く行きました。ですがもし書き込み先のページがフレームを使っていた場合どうしてもエラーが出てしまいます。 以下のような方法も試しましたがどうしても上手くいきません。 IEShell.Windows.Item(i).parent.frame1.document.myFORM.text.value="フォームに書き込みする内容" IEShell.Windows.Item(i).top.frame1.document.myFORM.text.value="フォームに書き込みする内容" 上記のようにparentやtopなども使ってみたんですがどうやってもエラーが出てしまいます。誰がわかる方いらっしゃいましたら助けてください。宜しくお願いします。