こんにちは
ループで苦労しています。
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で質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
switchを使って四則演算のプロ...
-
C言語クイックソートの比較総回...
-
自動的に連番生成したURLにリン...
-
value内に変数を入れたい
-
クリックの度に加算していくには?
-
複数のsubmitボタンで押された...
-
javascriptにてHTMLのhiddenエ...
-
hiddenのvalueの値を変えたい
-
商品コードを入れたら自動で商...
-
selectboxのoptionタグのvalue...
-
ラジオボタンとテキストを同時...
-
チェックボックスの値について
-
ASPでフォームのプルダウンの値...
-
VBAをJavaScriptに変換したいです
-
フレーム内のJavaスクリプトの...
-
javascriptで複数の計算を同時...
-
JavaScriptでBMI計算
-
%の計算の仕方
-
値を初期化したい。
-
例外処理(try...catch...)が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
hiddenのvalueの値を変えたい
-
3桁区切りのカンマをつけたい...
-
VB.NET DateTimeの型について
-
複数のsubmitボタンで押された...
-
テキストボックスに入力された...
-
フォーム内容を上から順番にJav...
-
VBAをJavaScriptに変換したいです
-
javascriptでhiddenに二次元配...
-
大量のselect要素のvalueを短い...
-
フォームで入力した値を別のフ...
-
プルダウン選択時、既に入力済...
-
ラジオボタンと連動して文字列...
-
引数に数値、文字列の混在
-
クイズ作成:15個の問題から5個...
-
クリックの度に加算していくには?
-
setIntervalの間隔を途中で変更...
-
Pythonで会員サイトの自動ログ...
-
selectboxのoptionタグのvalue...
-
JavaScriptによる自動計算フォ...
おすすめ情報