
ENTERキーを無効にしたいのですが、SUBMITボタンでjavascriptを動かしています。
SUBMITを押した瞬間に、別ウィンドウにデータを渡しているのですが、
どの部分にどのようなスクリプトを追加すれば良いでしょうか?
良かったら教えて下さい。
■親ウィンドウのHTML
<html>
<head>
<title>親</title>
<script type="text/javascript">
<!--
window.name = (new Date()).getTime();
function make_newwin(f) {
f.target = window.name + "_ko";
var w = window.open("about:blank", f.target, "スタイル設定");
w.focus();
}
//-->
</script>
</head>
<body>
<form name="test" action="/cgi-bin/test-check.cgi" method="post" onSubmit="make_newwin(this)">
<input type="submit">
</form>
</body>
</html>
No.5ベストアンサー
- 回答日時:
No.3、4 で回答されているキーの押下を無効化する方法では、フォーム内に TEXTAREA があった場合に、その中で改行することもできなってしまいます。
ですので、No.2で回答されているように、FORM の onSubmit で false を return するのが定法です。ただし No.2 の回答では、make_newwin() によって新しいウィンドウは開いたものの、肝心の「送信」を行っていないので、うまく行かなかったのです。
FORM による送信動作は onSubmit により無効化されていますので(このため、submitボタンでも送信できません)、FORMオブジェクトの submit() メソッドを使って自分で送信する必要があります。
以下サンプル
<html>
<head>
<title>親</title>
<script type="text/javascript">
<!--
window.name = (new Date()).getTime();
function make_newwin(f) {
f.target = window.name + "_ko";
var w = window.open("about:blank", f.target, "スタイル設定");
w.focus();
f.submit();
}
//-->
</script>
</head>
<body>
<form action="/cgi-bin/test-check.cgi" method="post" onSubmit="return false">
<input type="button" value="送信" onClick="make_newwin(this.form)">
</form>
</body>
</html>
※submitボタンは無効なので type="button" の汎用ボタンを使い、その onClick で make_newwin() を呼び出します。
※make_newwin() のパラメータはフォームオブジェクトでなければならないので、this.form を渡します。
※make_newwin() の中で、ついでに送信(f.submit())も行っています。
leaz024さん、またまた回答していただき、
有難うございます。教えていただいた方法で、
無事解決しました。
w.focus();の後に、f.submit();で送信すれば、
良かったのですね。とても勉強になりました。
実はフォーム内に TEXTAREA を作成していて、
どうしようかと思っていました。
本当に有難うございました。

No.4
- 回答日時:
<html>
<head>
<script language="JavaScript">
<!--
function make_newwin(f) {
f.target = window.name + "_ko";
var w = window.open("about:blank", f.target, "スタイル設定");
w.focus();
}
function keyBreak(){
if(window.event.keyCode=="13"){
event.returnValue = false;
}
}
-->
</script>
</head>
<body>
<form name="" method="post" action="" onkeydown="keyBreak()" onsubmit="make_newwin(this)">
:
<input type="submit">
</form>
</body>
</html>
これはどうでしょうか。
回答有難うございます。
このような方法もあるのですね。
プログラムまで書いていただいて、
本当に有難うございました。
今回は、テキストエリアがあったため
使う事ができませんでしたが、
わかりやすい説明で、理解できました。
本当に有難うございました。

No.3
- 回答日時:
ENTERを押したときはSUBMITしないで、SUBMITボタンを押したときだけSUBMIT以下の処理を行うということでいいのでしょうか。
<form name="" method="post" action="" onkeydown="keyBreak()">
とformタグに入れて、ファンクションを以下のようにします。
function keyBreak(){
if(window.event.keyCode=="13"){
event.returnValue = false;
}
}
このようにすれば、
そのフォーム内でSUBMIT以前のENTERキーを押した時にfalseとなり、ENTERキーのみを効かないようにできます。
SUBMITをクリックすれば普通に作動します。
ただWINのIEでしか動かなかったような気がします。(未確認です)
この回答への補足
回答有難うございます。
やはり、白い画面になり、FORMの値を別ウィンドウに
渡せません。
function make_newwin(f) {
f.target = window.name + "_ko";
var w = window.open("about:blank", f.target, "スタイル設定");
w.focus();
}
:
<form name="" method="post" action="" onsubmit="make_newwin(this)">
:
<input type="submit">
でしたら、きちんと別ウィンドウにわたせます。
教えていただいた方法で、下記のように
してみました。
function keyBreak(){
if(window.event.keyCode=="13"){
event.returnValue = false;
}
}
<form name="" method="post" action="" onkeydown="keyBreak()">
:
<input type="button" value="登録" onclick="make_newwin(this.form)">
としてみましたが、うまくいきません。
白い画面になります。
make_newwin(f)は、SUBMITを押した時に、
動作したいのです。
make_newwin(f)と教えていただいたkeyBreak()
を組み合わせれば、何とかする方法はありますか?
良かったら教えて下さい。
No.2
- 回答日時:
HTML+JavaScriptでENTERキーを無効にするための
条件は、onsubmitイベントハンドラの実行結果が
falseであることです。
ですので、onsubmit="return false"とすれば良い
ことになります。
ということで、以下の様にソースを修正されては
いかがでしょうか?
(修正前)
<form name="test" action="/cgi-bin/test-check.cgi" method="post" onSubmit="make_newwin(this)">
<input type="submit">
(修正後)
<form name="test" action="/cgi-bin/test-check.cgi" method="post" onSubmit="return false">
<input type="button" value="SUBMIT" onclick="make_newwin(this.form)">
申し訳ないのですが、動作確認はしておりませんので
試行錯誤してみて下さい。
JavaScriptだけにブラウザ依存で動く動かないなどが
発生する場合もありますので。
この回答への補足
回答有難うございます。教えていただいた方法で作成してみたのですが、
about:blankで、白い別ウィンドウは表示されるのですが、
targetでフォームの値を渡せません。
下記の動作を言わば行っているのですが、ENTERキーを無効で
この作業を行いたいのです。よかったら、教えて下さい。
このような場合は、まず window.open で別窓を作り、そのウィンドウ宛にフォームを送信する、という方法が有効です。(下記参照)
・FORMタグを次のように変更します。
<FORM action="/cgi-bin/test.cgi" method="post" target="newwin" onSubmit="make_newwin(this)">
・make_newwin 関数を作成します。
function make_newwin(f) {
var w = window.open('about:blank', f.target, 'スタイル設定');
w.focus();
}
フォームを送信しようとすると FORM の onSubmit により、make_newwin が(送信前に)実行されます。この時、引数に this(FORM自身)を渡し、window.open の2番目の引数(target指定)に f.target(FORMのtarget属性値)を指定するのがミソです。
その後フォームの送信が行われますが、この時既に newwin という(スタイル指定された)ウィンドウが存在していますので、そちらに送信される、というわけです。
回答有難うございました。
この方法で、うまくいきました。
別窓に渡してから、送信していなかった事が
原因でした。説明不足でもしわけありません。
本当に有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP php ログイン 1 2022/11/01 00:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別ウィンドウへのsubmitの挙動...
-
JavaScript:現在フォーカスの...
-
【FORM】 リンク文字で submit...
-
Locationについて
-
javascriptでASPにデータを渡す
-
submitした値を返したい
-
javascriptで .jpg , .jpeg , ....
-
セレクトメニューの値の取得
-
HTMLのフォーム名とJavaScript...
-
追加ボタンを押した際に ok ボ...
-
Java Scriptで・・・
-
プルダウンメニューの項目で1つ...
-
tableの任意行にfocusをあてる
-
JavaScriptで次のような動作を...
-
特定<table>内の<td>の色を変える
-
チェックボックス付きのテーブ...
-
大文字か小文字かを判断する方法
-
Visual Studioのデザインでの非...
-
イベント発生時に入力待ち状態...
-
slickのレスポンシブ > center...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
submitした値を返したい
-
別ウィンドウへのsubmitの挙動...
-
iframe内のformをサブミットす...
-
1つのページにformを2つ設置。2...
-
radiobuttonとbuttonを組み合わ...
-
JavaScript:現在フォーカスの...
-
Javascriptでlocation.hrefが妙...
-
C# 配列などの受け渡し
-
submitボタンを表示することな...
-
別窓ウィンドウから親ウィンド...
-
タブキーでなくエンターキーで...
-
inputのvalueを変数として使うには
-
フォームのvalueに配列を格納す...
-
FormのonsubmitでJavaスクリプ...
-
submitボタン押下後、disabled...
-
指定したタグを書き換えるには?
-
リンク先アドレスの一部にテキ...
-
enterについて2
-
フォームが空欄の時にフォーム...
-
ファイル選択と同時にアップロ...
おすすめ情報