- 締切済み
リストボックスと連動したテキストボックスについて
お世話になります。よろしくお願いいたします。 セレクトボックスを変更すると、頭のテキストボックスの値が変更するようなホームページを作りたいと思っています。(下:画面例) -------------------------------------- カテゴリーA [OK] 商品A1 配送方法:[ 飛行機 5日 ▼] [NO] 商品A2 配送方法:[ 船 20日 ▼] [NO] 商品A3 配送方法:[ トラック9日 ▼] カテゴリーB [NO] 商品B1 配送方法:[ 船 20日 ▼] [NO] 商品B2 配送方法:[ トラック9日 ▼] [OK] 商品B3 配送方法:[ 飛行機 5日 ▼] -------------------------------------- データが1つだけの場合には、 onChageを使って、 <html><head> <title>テスト</title> <script language="JavaScript"> <!-- function hantei(){ var idx = document.f1.p1.selectedIndex; var c1 = eval(document.f1.p1.options[idx].value); if ( c1>10 ) { document.f1.r1.value = "NO"; } else { document.f1.r1.value = "OK"; } } // --> </script> </head><body> <form name="f1"> <hr> 判定: <input size="10" type="text" name="r1"><br> <hr> 選択: <select name="p1" onChange="hantei();"> <option value="5" selected>飛行機</option> <option value="20">船</option> <option value="9">トラック</option> </select> </form> </body> </html> のように実現するところまではなんとか理解できたのですが、 ループさせて、上記のp1,r1,f1を各データ毎にp1,p2,p3...r1,r2,r3...f1,f2,f3...というように変化させた場合に 引数をhantei()に渡して、変数として処理する必要があると思うのですが、 どうにもうまくいきません。 お詳しい方がいらっしゃいましたら、教えていただけないでしょうか? よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- foreach
- ベストアンサー率51% (43/84)
質問の内容がイマイチよくわかりませんが、今は1個だけどセレクトを複数にした場合の処理の分け方をお聞きなのでしょうか? であれば話は簡単で、hantei();のところに引数を入れてhanteiの中で引数を評価して処理分けするか、hantei2()のようにそれぞれ必要な数だけ別の関数を用意して、それぞれ別個に評価するかのいずれかで出来ると思いますが・・。 私の解釈が間違ってたらごめんなさい。
お礼
ご回答、大変にありがとうございます。 実は、おしえてBPを利用するのははじめてでして、とても便利で大変に感謝しております。 ありがとうございました。 なお、「この回答への補足」で、 <INPUT READONLY type="text" name="<%= "kekka"+b %>"> と書かれているところは、正しくは、 <INPUT READONLY type="text" name="<%= "r"+b %>"> です。訂正してお詫び申し上げます。
補足
ご回答ありがとうございます。また、質問がわかりにくく、申し訳ございません。 補足説明させていただきますと、 <% for (int a=0;a < 5; a++) { %> カテゴリー <% } %> <% for (int b=0;b < 3; b++) { %> <INPUT READONLY type="text" name="<%= "kekka"+b %>"> <SELECT name="<%= "m"+b %>" onChange="hantei('<%= "f"+a %>','<%= "p"+b %>','<%= "r"+b %>');"> <OPTION value="4" SELECTed>飛行機 5日(標準)</OPTION> <OPTION value="14">船 20日</OPTION> <OPTION value="14">トラック 9日</OPTION> <% } %> <script language="JavaScript"> <!-- function hantei(Hfa,Hpb,Hrb){ var idx = document.Hfa.Hpb.selectedIndex; <---A var c1 = eval(document.Hfa.Hpb.options[idx].value);<---B if (c1>10) { document.Hfa.Hrb.value = "NO" ; } else { document.Hfa.Hrb.value = "OK" ; } } //--> </script> という感じでコードを書いたのですが、 A,Bのところで、うまく引数を認識できないのです。 よろしくお願いいたします。