カレッヂ |
質問者 ひろ
投稿日 7/26(木) 16:19:43
はじめまして、ひろと申します。 ご存知の方、教えていただきたいと思い、投稿しました。 <script language="JavaScript"> <!-- function test1(){ if(form1.text1.value == "なし"){ alert("空っぽ"); } if(form1.text2.value == "なし"){ alert("空っぽ"); } if(form1.text3.value == "なし"){ alert("空っぽ"); } if(form1.text4.value == "なし"){ alert("空っぽ"); } } --> </script> <form name="form1"> <input type="text" name="text1" value="てすと"><BR> <input type="text" name="text2" value="てすと"><BR> <input type="text" name="text3" value="なし"><BR> <input type="text" name="text4" value="てすと"><BR> </form> 上記の様に、同じ様な条件式を何度も書かずに、 ループで処理したいと考えています。 そこで、 for(i=1;i<5;i++){ if("form1.text" + i + ".value" == ""){ alert("空っぽ"); } } 上記のようにすると、条件式の中で、form1.text1のvalue値ではなく、 「form1.text1.value」という文字列で評価されてしまい、 「form1.text1.value」と「なし」との比較になってしまいます。 この様に、単純に文字列を結合しただけではダメなのでしょうか? これを回避する方法をご存知の方はいらっしゃいますでしょうか? |
回答者 しあわせのツボ
[削除]
投稿日 7/26(木) 17:33:22
・括弧で括る。 ・evalをかける。 ・2文に分ける。 といったあたりでしょうか。 |
質問者 ひろ
[削除]
投稿日 7/27(金) 09:50:39
ひろです。 教えていただいたとおり、 for(i=1;i<5;i++){ if(eval("form1.text" + i + ".value" == "")){ alert("空っぽ"); } } とやったらでできました。 ありがとうございました。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |