OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

IEでのフォームメールで、ENTERキーでのsubmitを動かさないようにしたいのですが。。

  • すぐに回答を!
  • 質問No.101678
  • 閲覧数528
  • ありがとう数6
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 100% (21/21)

IEでフォームメールを使用したときにENTERキーを押下するとsubmitが動いてしまうのですが、その動きを止める為に
1.送信ボタンは
  <input type="button" name="submit" value=" 送信する " onClick="subm()">
で関数subm()で
function subm()
{
document.form1.submit();
}

という動きと
2.送信ボタンに<input type="button" name="submit" value=" 送信する " onClick="javascript:document.form1.submit()">

という動きの2つを試してみたのですが、どちらもエラーになってしまいました。

原因がわからないので調べているところですが、もしどなたか他の方法をご存知でしたら、教えていただけませんでしょうか?
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル6

ベストアンサー率 22% (2/9)

こんにちわ。

ENTERキー押下でSubmitが動くのが記述された方法で止められるかは、わかりませんが、エラーの原因は
ボタンの名称です。
「SUBMIT」などの予約語は、使ってはいけないのです。

実際に記述されている、コードで試してみました。
確かにエラーでしたが、名前を変えるだけでOKになりましたよ。
(IE5.5で試しました)


あしからず。
お礼コメント
yuuma

お礼率 100% (21/21)

...ありがとうございます!こんな事に気付かなかったなんて恥ずかしい限りです(笑)予約語は使ってはいけないと知っていながら、、、、ボケていました。(笑)ありがとうございました。
投稿日時 - 2001-07-10 11:48:34
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル8

ベストアンサー率 50% (2/4)

どうやら、IEではフォームのテキストボックスがアクティブになると同時に 「submit」ボタンもアクティブになる、という仕様のようです。 要するにテキストボックスを入力中に間違ってenterキーを押すと、 勝手にsubmitボタンも押されてしまいます。 ネスケではこのようなことがないみたいですが。 というわけでsubmitボタンが押されたときに確認用のダイアログボックス を表示する、という ...続きを読む
どうやら、IEではフォームのテキストボックスがアクティブになると同時に
「submit」ボタンもアクティブになる、という仕様のようです。
要するにテキストボックスを入力中に間違ってenterキーを押すと、
勝手にsubmitボタンも押されてしまいます。
ネスケではこのようなことがないみたいですが。

というわけでsubmitボタンが押されたときに確認用のダイアログボックス
を表示する、という仕組みにするのが手っ取り早いのではないでしょうか。
具体的には以下のとおりです。

#submitボタンが押されたらreturn formConfirm関数を呼び出す#
#関数から「true」が返ってきたら処理を続行、#
#「false」が返ってきたら処理を中止する#
<input type="submit" onClick="return formConfirm()">

<!--
function formConfirm() {
 //確認用のダイアログボックスを表示し、ユーザーの入力待ちになる
 rtn = confirm("データを送信します。\nよろしいですか?");
 if(rtn){     //もし「OK」が押されたら
  return true;  //「true」を返す
 }        //「キャンセル」が押されたら
 return false;  //「false」を返す
}
-->
お礼コメント
yuuma

お礼率 100% (21/21)

丁寧な回答有り難うございます。
しかし、できれば見ている人が意識しないところで動くようにしたいのです。
質問内容にそのことを書かずに申し訳ありません。。
本当でしたら質問に書いているソースで動くはずだと思うんですけど、何かがひっかかっているようで・・・・
投稿日時 - 2001-07-09 14:58:28


  • 回答No.2
レベル8

ベストアンサー率 50% (2/4)

#1.送信ボタンは #<input type="button" name="submit" value=" 送信する " onClick="subm()"> #で関数subm()で #function subm() #{ #document.form1.submit(); #} 基本的 ...続きを読む
#1.送信ボタンは
#<input type="button" name="submit" value=" 送信する " onClick="subm()">
#で関数subm()で
#function subm()
#{
#document.form1.submit();
#}

基本的にはこれでいいのですが、
formタグに<form name="form1">という指定をしましたか?これがないと
JavaScriptの「document.form1」という記述と矛盾してしまうため、うまく行きませんよ。
(form1というオブジェクトは存在しない、というエラーが返ってくる)

こちらで実験したところ、相違点はこれだけです。
これでスクリプトのエラーはなくなるはずです。
お礼コメント
yuuma

お礼率 100% (21/21)

回答ありがとうございます。
ちゃんと <form name="form1">は記述しているのですが、うまくいかないのです。今日は一日これのエラー探しで終わりそうです。。。
ありがとうございました。
投稿日時 - 2001-07-09 16:18:51
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ