2017-06-21 7 views
0

フォームを送信したボタンにイベントを追加することができません。私は戻り値falseとpreventDefaultを追加しようとしたところで他の答えを見つけましたが、どちらもうまくいきませんでした。.smitとreturn falseが私のフォーム上で動作していません

なぜこれが機能しないのですか?

function submitform() { 
     document.getElementById("form").submit(function() { 
      return false; 
     }); 
    } 

私はJavascriptが動作していない示してボタン

<button id="button" onclick="submitform();">Submit Form</button 

Here is an exampleにクリックイベントを追加しました。

+0

イベントをハンドラに渡す必要があります。そうでない場合は、フォーム提出を行います。これは非同期ではありません。 –

+0

@SterlingArcher私が従わないのは申し訳ありませんが、私はサブミット機能にpreventDefaultを追加する必要がありますか? – cgrouge

答えて

-1

ページをリダイレクトせずにフォームの送信を処理するためにajaxを使用できます。あなたは、このソリューションのためのjQueryを使用している必要があります:

$(function() { 
    $('form').submit(function() { 
     $.ajax({ 
      type: 'POST', 
      url: 'submit.php', 
      data: { EMAIL: $(this).name.value } 
     }); 
     return false; 
    }); 
}) 

非常に類似した質問/ここに答える:Prevent redirect after form is submitted

+0

できるだけ私のソリューションで純粋なjavascriptを使用したいと思っています。私はできると信じています。 – cgrouge

0
それ以上のイベントがないときは、提出され、フォームのために待機している関数を呼び出している

。基本的にあなたは決して来ないイベントを聞いています。

ボタン上でイベントが発生しているので、提供されたフィドルのサブミットで関数を呼び出す必要はありません。

プロセスを表示するためだけに電子メールアドレスの簡易テストを追加しました。

改正ペン:https://codepen.io/anon/pen/dRRbyw

HTML

<button id="button" onclick="submitform();">Submit Form</button> 
<br /><br /> 
<form id="form" method="post" action="https://submit.jotform.us/submit/71714528616156/"> 
    Email 
    <input type="text" name="EMAIL" id="EMAIL" label="Email" value=""> 

JS

function submitform() { 
    if(document.getElementById("EMAIL").value == "") {  
      alert('nope'); 
      return false; 
     } else { 
    alert('yep'); 
    document.getElementById("form").submit(); 
    } 
} 

あなたはこれ以上説明が必要なら、私に教えてください。

+0

私はあなたの答えを理解していません。私のボタンはフォームの外にあるので、そのボタンをクリックするとフォームが送信されます。私はフォームを提出したいが、ありがとうページにリダイレクトしない。あなたの答えはその解決策を提供しません – cgrouge

+0

フォームが指示される場所はあなたの行動価値に依存します。上記のフォームが提出されています。これはdocument.getElementById( "form")です。やっている。 – PhilipAbbott

+0

あなたの回答のフォーム提出は機能していますが、ページのリダイレクトは望ましくありません。そのため、データをアクションURLに送信する必要がありますが、完了したら感謝のページが表示されないようにしたい – cgrouge

関連する問題