何が問題なのですか。
HTML:
<form action="http://localhost:8888/bevbros/index.php/test" method="post" accept-charset="utf-8" id="cpa-form" class="forms">
<input type="text" name="Zip" value="Zip code" id="Zip" class="required valid">
<input type="submit" name="Next" value="Submit" class="forms" id="1">
</form>
jQuery:
$("#cpa-form").submit(function(e){
e.preventDefault();
});
これを試して:
$("#cpa-form").submit(function(e){
return false;
});
新しい "on"イベント構文を使用してください。
$(document).ready(function() {
$('form').on('submit', function(e){
// validation code here
if(!valid) {
e.preventDefault();
}
});
});
上記の答えはすべて正しいと思いますが、それがsubmit
メソッドが機能しない理由を指摘するものではありません。
JQueryがsubmit
要素を取得できない場合はform
メソッドは機能しません。また、jQueryはそれについてエラーを返しません。スクリプトがドキュメントの先頭に配置されている場合は、DOM
が準備完了になった後にコードが実行されるようにしてください。そのため、$(document).ready(function () { // your code here // });
が問題を解決します。
ベストプラクティスは、常にスクリプトをドキュメントの末尾に配置することです。
$('#cpa-form input[name="Next"]').on('click', function(e){
e.preventDefault();
});
これは古くからの質問ですが、ここで認められている答えは実際には問題の根本にたどり着きません。
あなたはこの二つの方法を解決することができます。まずjQueryを使います。
$(document).ready( function() { // Wait until document is fully parsed
$("#cpa-form").on('submit', function(e){
e.preventDefault();
});
}
またはjQueryなしで:
// Gets a reference to the form element
var form = document.getElementById('cpa-form');
// Adds a listener for the "submit" event.
form.addEventListener('submit', function(e) {
e.preventDefault();
});
この問題を解決するためにreturn false
を使う必要はありません。
$(document).ready(function(){
$("#form_id").submit(function(){
return condition;
});
});
あなたのコードは素晴らしいですあなたはそれをready関数の中に置く必要があるだけです。
$(document).ready( function() {
$("#cpa-form").submit(function(e){
e.preventDefault();
});
}
DEPRECATED - この部分は古くなっているので使わないでください。
たとえば後で動的フォームを追加した場合は、このコードを試すこともできます。たとえば、ajaxと非同期のウィンドウをロードし、このフォームを送信したいとします。
$('#cpa-form').live('submit' ,function(e){
e.preventDefault();
// do something
});
UPDATE - 動的に追加されたコンテンツを処理したい場合は、jQuery on()メソッドを使用して文書DOMを監視してください。
ケース1、静的バージョン:あなたが数人のリスナーしか持っておらず、扱うフォームがハードコードされている場合は、「ドキュメントレベル」で直接聞くことができます。リスナーはドキュメントレベルでは使用しませんが、パフォーマンスの問題につながる可能性があるため、Doomツリーの奥深くに移動しようとします(Webサイトのサイズとコンテンツによって異なります)。
$('form#formToHandle').on('submit'...
OR
$('form#formToHandle').submit(function(e) {
e.preventDefault();
// do something
});
ケース2、動的バージョン:あなたがすでにあなたのコードの中でその文書を聞いているのであれば、この方法はあなたにとって良いでしょう。これは、後でDOMを介して追加されたコードやAJAXを使用した動的コードでも機能します。
$(document).on('submit','form#formToHandle',function(){
// do something like e.preventDefault();
});
OR
$(document).ready(function() {
console.log( "Ready, Document loaded!" );
// all your other code listening to the document to load
$("#formToHandle").on("submit", function(){
// do something
})
});
OR
$(function() { // <- this is shorthand version
console.log( "Ready, Document loaded!" );
// all your other code listening to the document to load
$("#formToHandle").on("submit", function(){
// do something
})
});
こんにちは、AjaxフォームをGoogle Tag Manager(GTM)と連携させるための解決策を模索しました。戻り値falseは完了を妨げ、Google Analyticsソリューションでイベントのアクティブ化をリアルタイムで送信することはe.preventDefault()で戻り値falseを変更することでした。 ;それは正しく働いたコードに従います:
$("#Contact-Form").submit(function(e) {
e.preventDefault();
...
});