• ベストアンサー

SelectのLabelの値を取得するには

できる・できないの判断を下さい。 DB・ASPをつかってアプリケーションを作成しています。 HTMLのselectで、valueにはコード、Labelには日本語名を据えています。 submit時にLabelに"★"含まれていたら、その下のテキストエリアは、 絶対に記入、と言うチェックを、javascriptで書きたいと思っています。 ところが、どうしてもLabelの値を参照することができません。 valueで、コードを参照できることは確認しました。 これってできないのでしょうか? 以下実際に書いたJavascript function Checkform() { Chkflg = true; // assume valid if (document.forms.form_report.factor_cd.label.indexOf("★") !== -1) { if (!Chk_Lng(document.forms.form_report.coment.value)) { Chkflg = false; alert("要因に★がある場合は、必ずコメントを記入して下さい。"); return Chkflg;} if (Chkflg) document.forms.form_report.submit(); return Chkflg; } } function Chk_Lng(text) { return (text.length > 0); // returns false if empty }

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

#2さんの回答をよく読めばきちんと書いてありますが こんな感じです。 質問自体にちょっとおかしな記述があったり するので、冷静によくフローを考えてコーディング するとよいと思います。 <script language=javascript> function Checkform(f){ if (f.factor_cd.options[f.factor_cd.selectedIndex].text.indexOf("★") != -1 && f.coment.value.length==0){ alert("要因に★がある場合は、必ずコメントを記入して下さい。"); return false; } return true; } </script> <form onSubmit="return Checkform(this)"> <select name="factor_cd"> <option value="aaa">---------- <option value="bbb">★重要 <option value="ccc">普通 <option value="ddd">どうでも </select> <input type=text name="coment"> <input type=submit name="send"> </form>

komakusa
質問者

お礼

的確なご返答、ありがとうございました。 冷静に、ゆっくり考えて、解決できました

その他の回答 (2)

回答No.2

Labelというのは <SELECT NAME="***"> <OPTION VALUE="0">★ここ★</OPTION> </SELECT> の「★ここ★」の事でしょうか? ここはLabelではなくtextです。 取り方としては function ****(){ with( document.form_name ){ Label = select_name.options[select_name.selectedIndex].text; Value = select_name.options[select_name.selectedIndex].value; } } という感じです。

komakusa
質問者

補足

alert(document.forms.form_report.factor_cd.options.text); するとundefind、 alert(document.forms.form_report.factor_cd.options.value); とすると正しいコードが表示されます。 できるのであれば、実現させたいのでアドバイスをお願いします。

  • THX1138
  • ベストアンサー率51% (108/208)
回答No.1

プロパティ名が違うと思います factor_cd.label ではなく factor_cd.text ではないでしょうか 試してみてください

専門家に質問してみよう