質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

5927閲覧

送信ボタンを1回しか押せないjavascript

Tsubanishi

総合スコア43

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2021/03/02 03:22

下記申込フォームを作成しております
送信ボタンを1回押したら再度押せないようにしたいと思って
https://allabout.co.jp/gm/gc/23959/
上記ページを参考に実装してみたのですが、
なぜか送信されない状況です。
googleフォームを自分のフォームにあてこんで作成しております
javascriptはあっていると思うのですが
ボタンをおしても何も起こらない現状です
どなたかご確認お願いします

html

1<body> 2<ul> 3<form action="https://docs.google.com/forms/u/0/d/e/1FAIpQLSeIXnBye-VM3Ti1tboQFZ3MRxzgEtASKNKr2N0yoDMtvVWSgA/formResponse" method="post" 4 target="hidden_iframe" onsubmit="submitted=true;"> 5 6 7 8<li> 9<br>参加者氏名 <span class="haveto">必須</span></br> 10<input name="entry.1380337432" type="text" required="required" id="name" class="g_form" placeholder="太郎"> 11</li> 12 13<!-- 送信 --> 14 <div class="p-form__btn"> 15 <input type="submit" value="次へ"onclick="disabled = true;"> 16 17 </div> 18 <!--//End 送信 --> 19</form> 20</body>

javascript

1<script type="text/javascript">var submitted = false; 2var currentURL = window.location.href;</script> 3 4<script type="text/javascript">var submitted = false;</script> 5<iframe name="hidden_iframe" id="hidden_iframe" style="display:none;" onload="if(submitted){window.location='mail-thanks';}"></iframe>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/03/02 03:28

「ボタンをおしても何も起こらない」のは「普段どおりに送信が進んでしまって2回押せる」のか「送信すらなされない」のか、どちらでしょうか?
yambejp

2021/03/02 03:33

送信したらページが変わってしまうので、二回目は無いと思いますが?
Tsubanishi

2021/03/02 03:36

onclick="disabled = true;"を入れると送信ボタンを押しても次の画面にいきません。 外すと次のホームへいきますが、2.3回続けて押すと同じ内容が2.3回くる状態です
Tsubanishi

2021/03/02 03:39

送信ボタンを押しても、次のホームへの切り替わりが遅く、何回も送信ボタンを連打する方が多く同じ内容のものが何度も送られてしまう状態です
guest

回答2

0

ベストアンサー

html

1 <input type="submit" value="次へ"onclick="disabled = true;">

この手法は、フォームの送信ボタンには使えません。ボタンを無効にするとフォーム送信も無効になってしまうからです。

かわりに、submitイベントの中で送信ボタンを無効化するのはいかがでしょうか。

html

1<form action="..." method="post" target="..." 2 onsubmit="submitted=true; this.querySelector('input[type=submit]').disabled=true;">

投稿2021/03/02 03:35

編集2021/03/02 03:36
int32_t

総合スコア20872

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tsubanishi

2021/03/02 05:54 編集

なるほど、submitのイベントを無効化にする、勉強になります。ありがとうございます
guest

0

困ったときのsetTimeout

javascript

1<input type="submit" value="次へ" onclick="setTimeout(()=>disabled=true,0)"> 2

投稿2021/03/02 03:45

yambejp

総合スコア114829

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tsubanishi

2021/03/02 05:45

こちら実装してみたのですが、次へのボタンの横に var submitted = false; var currentURL = window.location.href;とでてしまうのですが.......
hentaiman

2021/03/02 05:49

googleフォームの作りが分からないのでアドバイスは出来ないけど、ボタンそのものを無効にせずに連打対策したいならsetTimeoutを使うのは正解ですよ コピペで動かないとかは知りませんが
Tsubanishi

2021/03/02 05:51

ありがとうございます!!setTimeoutを少し調べて勉強してみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問