-PR-
解決済み

選択されていないときにメッセージ

  • 困ってます
  • 質問No.72583
  • 閲覧数130
  • ありがとう数2
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 47% (767/1609)

やりたいことはリストボックスが選択されていない時に、テキストエリアに入力しようとするとメッセージを出すことです。
下記は、未完成の切り貼りです。(全然デタラメかもしれません・・)
助言をいただけると助かります。

<SCRIPT LANGUAGE=javascript>
function alert()
if (document.main.kubun.value = "↓【選択して下さい】"){
alert("先に選択すること。")
}
</SCRIPT>

<FORM NAME="main" ACTION="default.cgi" METHOD="POST">
<SELECT NAME="kubun">
<OPTION SELECTED>↓【選択して下さい】</OPTION>
<OPTION VALUE="東京">東京</OPTION>
<OPTION VALUE="大阪">大阪</OPTION>
</SELECT><BR>
<TEXTAREA NAME="TextArea" ROWS="7" COLS="73" onclick="alert()">

</TEXTAREA>
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="送信"></form>
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3

これじゃ、動かないですね~。(^^;;

JavaScriptのコードの間違いは下記5点です。
1.指定されているSELECTボックスの初期値が「↓【選択して下さい】」になっていません。
2.functionを囲む中カッコがありません。
3.SELECTボックスの選択値は、VALUEではとれません。selectedIndexを使用します。
4.if文の条件は"="ではなく"=="です。
5.alertはJavaScriptの予約語ですので、そのままではfunction名に使用できません。

以下、修正ソースです。

--------------------------------------------
<html>
<head>
<script language="javascript">
function checkalert() {
if (document.main.kubun[document.main.kubun.selectedIndex].value == ""){
window.alert("選択してください。");
}
}
</script>
</head>
<body>
<form name="main">
<SELECT NAME="kubun">
<OPTION VALUE="" SELECTED>↓【選択して下さい】</OPTION>
<OPTION VALUE="東京">東京</OPTION>
<OPTION VALUE="大阪">大阪</OPTION>
</SELECT>
<BR>
<TEXTAREA NAME="TextArea" ROWS="7" COLS="73" onClick="checkalert()">
</TEXTAREA>
</form>
</body>
</html>
----------------------------------------------

JavaScriptの基本をキチンと押さえる事をお薦めします。
お礼コメント
s-holmes

お礼率 47% (767/1609)

皆様回答ありがとうございました。言われてみれば、以前にも指摘された内容もあったりして、基本がわかっていないと痛感いたします。ありがとうございました。
投稿日時 - 2001-05-07 17:15:33
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル12

ベストアンサー率 65% (242/372)

alertという関数名は予約語なので
違う関数名にしたほうが良いかと思います。

その辺りを考慮してこんな感じでどうでしょうか?
(ちなみに動作確認してないです^^;;)

<SCRIPT LANGUAGE=javascript><!--
function keikoku()
if( document.main.kubun.selectedIndex == 0){
alert("先に選択すること。");
}
//--></SCRIPT>

<FORM NAME="main" ACTION="default.cgi" METHOD="POST">
<SELECT NAME="kubun">
<OPTION SELECTED>↓【選択して下さい】</OPTION>
<OPTION VALUE="東京">東京</OPTION>
<OPTION VALUE="大阪">大阪</OPTION>
</SELECT><BR>
<TEXTAREA NAME="TextArea" ROWS="7" COLS="73" onFocus="keikoku();">

</TEXTAREA>
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="送信"></form>

参考まで


  • 回答No.2
レベル7

ベストアンサー率 41% (5/12)

関数名についてはhequliさんのおっしゃるとおりです。

スクリプト部分はこんな感じで。
<SCRIPT LANGUAGE="javascript">
function test(){
if (document.main.kubun.options[document.main.kubun.selectedIndex].value==""){
alert("先に選択すること。") ;
return false;
}
}
</SCRIPT>

フォームのタグはこんな感じで。action
<FORM NAME="main" METHOD="POST" onSubmit="return test()" ACTION="default.cgi">
<SELECT NAME="kubun">
<OPTION SELECTED>↓【選択して下さい】</OPTION>
<OPTION VALUE="東京">東京</OPTION>
<OPTION VALUE="大阪">大阪</OPTION>
</SELECT><BR>
<TEXTAREA NAME="TextArea" ROWS="7" COLS="73">

</TEXTAREA>
<INPUT TYPE="submit" NAME="Submit" VALUE="送信">
</form>

思ったように動きました、私の環境(Windows98のNN4、IE4)では。
  • 回答No.4
レベル7

ベストアンサー率 41% (5/12)

No.2の自己フォローです。
s-holmesさんは、テキストエリアに入力しようとするとメッセージが出るようにとお考えですが、これだとテキストエリアをはじめから無視して送信ボタンを押された場合、このチェックの存在も無視されてしまいます。
ですので、「No.2」には私がよく用いる方法を記入してしまいました。
送信ボタンを押したときに、データを送信する前にデータのチェックを行うという方法です。

ちなみに、s-holmesさんのやりたい方法にするとこうなります。

<SCRIPT LANGUAGE="javascript">
function test(){
if (document.main.kubun.options[document.main.kubun.selectedIndex].value==""){
document.main.kubun.focus();
alert("先に選択すること。") ;
return false;
}
}
</SCRIPT>

<FORM NAME="main" METHOD="POST" ACTION="default.cgi">
<SELECT NAME="kubun">
<OPTION SELECTED>↓【選択して下さい】</OPTION>
<OPTION VALUE="東京">東京</OPTION>
<OPTION VALUE="大阪">大阪</OPTION>
</SELECT><BR>
<TEXTAREA NAME="TextArea" ROWS="7" COLS="73" onFocus="test()">

</TEXTAREA>
<INPUT TYPE="submit" NAME="Submit" VALUE="送信">
</form>
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ