2016-12-07 7 views
1

を提出する上で、私は(Foundationフレームワークで検証)を提出私のフォーム上で実行する機能を希望します。私のフォームが送信される:(のpreventDefaultフォーム

+0

"return false;" –

+0

** submit **のフォームを防止するには、** submit **イベントのpreventDefaultを必要とします。おそらく –

+0

ev.stopPropagation(); falseを再入力します。 – Rossitten

答えて

1

インターセプトはsubmitイベントに提出します。

$($newsletter).on("submit",function(e) { 
    e.preventDefault(); 
    console.log("submit intercepted"); 
    return false; 
}); 
$($newsletter).on("forminvalid.zf.abide", function(e,target) { 
    console.log("form is invalid"); 
    //show error messages 
}); 
$($newsletter).on("formvalid.zf.abide", function(e,target) { 
    console.log("form is valid"); 
    //process form 
    openRevealNewsletter(this.getAttribute('action')); 
}); 
+0

は、いつも起こっている送信を妨げるでしょう...フォームが有効な場合はどうなりますか:p –

+0

OPはデフォルトを防ぎ、代わりにjavascriptで何かをしたいと思います。 'openRevealNewsletter(this.getAttribute( 'action'));' – sabithpocker

+0

ああ...フォームが有効な場合のみ(私は間違って読む) –

1

これを試してください:

$($newsletter).on('formvalid.zf.abide', function(ev) { 
    alert('validate!'); 
    openRevealNewsletter(this.getAttribute('action')); 
    return false; 
}); 

これはfalseが返された値のフォームポストを停止します

あなたがreturn falseを使用している場合は、自動的に3つの別々のことをやっています。あなたはそれを呼び出すとき:

1.event.preventDefault();

2.event.stopPropagation();

3.Stops callback execution and it returns immediately when callback are called.

0

、この作業を行うようにするすべての簡単な方法は、Javaスクリプトを使用して、プログラム

 document.getElementById("FormID").submit(); 
をフォームを送信する代わりに

<button type="submit">submit</button> 

<button type="button">submit</button> 

を使用しているの最初の

これはあなたを提出するあなたはこのスクリプトを呼び出すときにも、デフォルトを避けるためにフォームを送信ボタンに入れてください。

関連する問題