2012-01-06 5 views
6

私はHTML5フォームタグをクライアントサイドバリデーターに組み込んでいますが、私はちょうど持っているものを送信したくありません代わりに実行するJavascript関数HTML5フォームの投稿、リフレッシュ、または新しいウィンドウを開くを停止する投稿者

フォームのPostメソッドを停止するにはどうすればよいですか?

<input .... onclick="function();return false;" /> 

またはあなたがちょうどそうのような関数からfalseを/ trueを返すことができます:: -

乾杯キーズ

+0

jqueryはオプションですか?または生のjs? – Dunhamzzz

答えて

5

はそうのように、関数呼び出しの後リターン偽を追加

<input .... onclick="return function()" /> 
+0

返信いただきありがとうございます。さて、それは送信プロセスを停止しますが、検証は機能していないようです。何か案は? –

+0

コードが追加されても、関数がまったく実行されなくなってはなりません。関数が実行されていることを確認し(多分いくつかのデバッグコードを追加します)、下の例を使用している場合、関数がtrue/falseを返すようにします。 – Tom

1

jQueryを使用する場合、次の操作を実行できます。

0123あなたはAjaxコードを書くことができます「//あなたのスタッフを行う」では

document.getElementById('your_form_id').addEventListener('submit' function() { 
    // do your staff 
    return false; 
}); 

また、フレームワークなしでそれを行うことができます。

0

フォームタグにonSubmit検証プロパティを追加します。

<form onsubmit="return myfunction()"> 

あなたは、例えば、フォームにをonSubmitハンドラを追加します

function myfunction() { 
    // do your validation 
    if (validation.passes) { // you will need to change this line !!! 
    return true; // to submit 
    } else { 
    return false; // to prevent submit 
    } 
} 
0

あなたの関数のためのブール値を返すことを確認

<form method="POST" onsubmit="return sendForm();"> 

が続いて関数を定義し、戻り値としてfalseを追加します。私は、彼らがそうであるように私の機能を残すことを好むとのonSubmitハンドラに虚偽のリターンを追加する傾向がある

function sendForm() { 
    //do your ajax request... 
    return false; 
} 
1

、例:

<form onsubmit="aFunction(); return false;"> 
0

私はすべてのあなたのソリューションを試してきましたが、それはまだAjaxの処理の後にページをリロードする:

<form id="form2" method="POST" onsubmit='sent(); return false;' > 

function sent(){ 
    $.ajax({ 
     ... 
    }); 
} 
関連する問題