JavaScriptでエラーメッセージを
[上に]
[前に]
[次に]
PiPi
2000/03/26(日) 16:45:19
題名の通りですが、
フォームに入力されて、ボタンを押すと
自作メッセージのエラーウィンドウ?を出したいのですが、
どのようにしたらいいのでしょう。
ちなみに、フォームに入力したメッセージはすべて
エラーとなるように作りたいです。
独学でやってみたところ、
一回目はうまくいくのですが、
再度やってみると、
http://www....../~...../hoge.html?password
といった感じにURLが表示され、
普通にリロードした感じになってしまいます。
かならずエラーウィンドウが出るように
作るにはどうしたらよいでしょうか、
教えてください。
Chose
2000/03/26(日) 16:48:21
独学でやった物を見せてください。
いまいちどうしたいかわかりません
PiPi
2000/03/27(月) 04:38:15
Choseさん、ごめんなさい。
以下がその部分です。
<head>
<script language="JavaScript">
<!--
function formBtn(passName){
if (passName.pName.value == ""){
alert("パスワードが入力されていません");
}
else{
alert("パスワードが違います");
}
}
// -->
</script>
</head>
<body>
<form name="fName">
パスワード<input type="password" name="pName" size="9"> <input type="button" name="btn" value="管理人メニュー" onclick="formBtn(this.form)">
</form>
</body>
といった感じです。
Ichi
2000/03/27(月) 05:37:58
どこで送信しているのかわからないのですが、
passName.pName.value
>fName.pName.value
ですね?
onClickでformBtn関数がfalseをreturnしてやれば、
Clickされなかったことになります。
onSubmitとかでも同様です。
http://www.tohoho-web.com/js/onevent.htm#About
if (passName.pName.value == ""){
alert("パスワードが入力されていません");
}
else{
alert("パスワードが違います");
}
これだといつも「パスワードが〜」とでますね。
インデントですが、その形のインデントは対応がわかりにくいので
あまり感心できません。
function formBtn{
if (passName.pName.value == ""){
alert("パスワードが入力されていません");
}
このような感じがよろしいかと。
../200003/00030249.htm
の辺りも参考にしてみてください。
PiPi
2000/03/27(月) 09:08:08
Ichiさん、ありがとうございます。
一度その方法でやってみます。
その後解決チェックにきますね。
PiPi
2000/03/27(月) 09:20:17
あれ?あれれ?
ごめんなさい、、コピーして張り付けてたら、
パニックになって、何か変なエラーがでます(TT)
passNameとかpNameとかへんなのつけたので、
こんがらがってます、、
だれか<head>に何を書くか、<body>フォーム部分はどうするかを
もう一度簡単に教えてください、、ごめんなさい、、
H&A
2000/03/27(月) 09:55:53
> passName.pName.value
> >fName.pName.value
> ですね?
「管理人メニュー」ボタンの onClick() でフォームを引数としているので、passName のままでいいのではないかと思います。
「ボタンを押されたら、必ずエラーメッセージを表示する」ということでしたら、Ichi さんのおっしゃっておられるように
・formBtn() の、alert() の下に "return false;" をつけて
・ボタンの onclick() ハンドラを "return formBtn(this.form);" とする
ことで実現できるのでは。
具体的には、以下のように変更してみてはいかがでしょうか。
<html>
<head>
<script language="JavaScript">
<!--
function formBtn(passName){
if (passName.pName.value == ""){
alert("パスワードが入力されていません");
return false;
}
else{
alert("パスワードが違います");
return false;
}
return true;
}
// -->
</script>
</head>
<body>
<form name="fName">
パスワード<input type="password" name="pName" size="9"> <input type="submit" name="btn" value="管理人メニュー" onclick="return formBtn(this.form);">
</form>
</body>
</html>
PiPi
2000/03/27(月) 10:05:21
H&Aさん、ありがとうございます!
ボタンを押したときには思い通りの動作を
するようになりました(^^
しかし、フォームに入力後、return or enterキーを
押すと、
http://xxx.xxx.xxx/~user/hoge.html?pName=password
といった感じにURLが変化し、
リロードと同じ状態となります。
こちらの場合はどうすればいいのでしょうか?
お教えください。
H&A
2000/03/27(月) 10:14:40
> しかし、フォームに入力後、return or enterキーを
押すと
こちらの処理を忘れておりました。
では、button の onClick() ではなく form の onSubmit() で処理するように変更しましょう。
フォーム部を
<form name="fName" onSubmit="return formBtn(this);">
パスワード<input type="password" name="pName" size="9"> <input type="submit" name="btn" value="管理人メニュー">
とすれば大丈夫…なハズです。
PiPi(解決♪)
2000/03/27(月) 10:19:36
[[解決]]
おつきあい、ありがとうございました。
H&Aさんには心からお礼申し上げます♪
文章表現に不慣れで、分かりにくい部分も
多かったかと思いますが、誠にありがとうございました。
[上に]
[前に]
[次に]