
こんにちは
ループで苦労しています。
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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
switchを使って四則演算のプロ...
-
ボタン無しでフォーム内容送信
-
javaScriptの変数をJavaの変数...
-
onchangeイベントを強制的に発...
-
return trueとreturn falseの用...
-
<input>の選択肢をプルダウンメ...
-
Formのシリアライズができない
-
RegularExpressionValidatorの...
-
Javascriptに条件分布ついて(再)
-
C#(csファイル)とjavascriptと...
-
name = cats[1] という input ...
-
複数のformから値を取得する方法
-
データベースの値を判断してラ...
-
テキストボックスにカーソルを...
-
テーブル内のチェックボックス...
-
複数のチェックボックス項目が...
-
idの振り直しについて
-
画面表示とともに、テーブルの...
-
OnClickでURL生成し、飛ばしたい
-
時間表示のタグ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
hiddenのvalueの値を変えたい
-
UART通信の取説で,left floati...
-
sessionStorageを調べています。
-
javascriptでhiddenに二次元配...
-
eval()を使わずに数値を取得し...
-
Kintone(キントーン)でドロップ...
-
3桁区切りのカンマをつけたい...
-
selectboxのoptionタグのvalue...
-
自動的に連番生成したURLにリン...
-
子から親へチェックボックスの...
-
どのボタンがクリックされたの...
-
フォームで個数の選択をプルダ...
-
name属性が同じフォームが複数...
-
VB.NET DateTimeの型について
-
JAVASCRIPTの日数計算について
-
プルダウン選択時、既に入力済...
-
Javascriptのグローバル変数に...
-
セレクトボックスの初期選択状...
-
JAVASCRIPTで、ボタンを押した...
おすすめ情報