![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67b6d)
こんにちは
ループで苦労しています。
nameが数字で連続したフォームがいくつかあり、それをループで読み取りたいのです。私が作ったものは以下のものです。でもエラーになります。どこが悪いのかどなたかご教授ください。
<script>
function ggo(){
for (i=1; i<=3; i++){
document.write(document.forms["myFORM"].elements["k"+i].value);
}}
</script>
<form name="myForm">
<input type="text" name="k0"><br>
<input type="text" name="k1"><br>
<input type="text" name="k2"><br>
<input type="button" value="hai" onClick="ggo()">
</form>
それから、余談ですが以下のスクリプトはループを1回にするとkipをエラー無しで読み込んでくれますが、2回以上にするとエラー表示とともに1度しか読み込んでくれませんなぜなのでしょうか?ひとつの書き込みにに1つの質問が原則なのでこちらの質問に答えていただける方がいらっしゃればそれもとてもありがたいです。欲張ってすいません。
<script>
function ggo(){
for (i=0; i<=2; i++){
document.write(document.myForm.kip.value);
}
}
</script>
<form name="myForm">
<input type="text" name="kip"><br>
<input type="button" value="hai" onClick="ggo()">
</form>
↓参照しました↓
http://oshiete1.goo.ne.jp/qa820843.html
No.2ベストアンサー
- 回答日時:
最初の質問は、No.1の方が書かれているのに補足ですが、
for文のカウンタが1~3までになっているので、
"k" + iは、k1、k2、k3となりコントロール名と異なります。
また、共通で、document.write()にする場合、
ループの1回目で出力処理により、フォームの内容が失われてしまうので、
document.forms[name].elements[name].valueは参照不可になります。
実現したいのであれば、
(1)
function ggo(){
var str = "";
for (i=0; i< 3; i++){
str += document.forms["myForm"].elements["k" + i].value + "<BR>";
}
document.write(str);
}
(2)
function ggo(){
var val = document.myForm.kip.value + "<BR>";
for (i=0; i<=2; i++){
document.write(val);
}
}
このように変数に格納して表示した方がいいと思います。
system0001さん
ありがとうございました。
今一生懸命自分の書いたスクリプトとsystem0001さんに書いていただいたスクリプトを見比べましたが「う~ん」という感じです。もちろんsystem0001さんのスクリプトは見事に動きました。マジックのようです。確かに私のスクリプトでは「~はNullまたはオブジェクトではありません」とありましたが、自分のスクリプトの中で変数宣言しなければならない、Valueが設定されていないことすら自分で分かっていませんでした。ループ内では宣言できないということなんでしょうか?なぜ宣言が必要なのでしょうか?残念ながら、もう申し分の無いスクリプトを頂いたのでこの書き込みの後この質問を閉じさせてもらうのでそのお答えはいただけませんが。もう少し「宣言」について自分で考察してみます。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ラジオボタンの選択で解答・点...
-
setIntervalの間隔を途中で変更...
-
ラジオボタン、チェックボック...
-
複数のsubmitボタンで押された...
-
自動的に連番生成したURLにリン...
-
value内に変数を入れたい
-
入力を制限したい
-
VB.NET DateTimeの型について
-
プルダウン 項目が多いので先頭...
-
VBSでブラウザ上のテキストボッ...
-
JQuery Mobileでチェックボック...
-
ブラウザの戻るボタンを押した...
-
【jQuery】input nameの文字列...
-
JavaScriptde途中で、「exit」...
-
return trueとreturn falseの用...
-
確認ページからフォームページ...
-
動的にTabindexの値を変えたい!
-
tableの任意行にfocusをあてる
-
FormのonsubmitでJavaスクリプ...
-
JSPとJavaScriptの連携について...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
UART通信の取説で,left floati...
-
javascriptでhiddenに二次元配...
-
hiddenのvalueの値を変えたい
-
VB.NET DateTimeの型について
-
テキストボックスに入力された...
-
CDOMailで本文テキストの文字コ...
-
setIntervalの間隔を途中で変更...
-
javascriptにてHTMLのhiddenエ...
-
ラジオボタンの選択で解答・点...
-
子から親へチェックボックスの...
-
フォームで入力した値を別のフ...
-
複数のsubmitボタンで押された...
-
selectboxのoptionタグのvalue...
-
Pythonで会員サイトの自動ログ...
-
クイズ作成:15個の問題から5個...
-
どのボタンがクリックされたの...
-
eval()を使わずに数値を取得し...
-
VBAをJavaScriptに変換したいです
-
ホームページビルダーのスクリ...
おすすめ情報