dポイントプレゼントキャンペーン実施中!

できる・できないの判断を下さい。
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
}

A 回答 (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>
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/11/25 17:00

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;
}
}

という感じです。

この回答への補足

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

補足日時:2005/11/14 20:15
    • good
    • 0

プロパティ名が違うと思います



factor_cd.label
ではなく
factor_cd.text

ではないでしょうか
試してみてください
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!