さて、この質問のさまざまな形が尋ねられましたが、私の特定のケースを機能させるのに十分な情報を見つけることができないので、これが私がやろうとしていることの文脈です:
要素の半分が通常のようにページに表示され、残りの半分の要素がモーダルで表示されているフォームがあります(同じページにありますが、最初は非表示で、すべての要素に情報が事前に入力されています。 DBなので、デフォルトで有効です)。このフォームには2つの送信ボタンもあります。1つは要素の前半の下部にあるページにあり、もう1つはモーダル自体にあります。最初の送信ボタンがクリックされたときに、フォームで通常のネイティブHTML5検証を実行する必要があります(はい、モーダルのフィールドを含むフォーム全体でこれを実行する必要がありますが、前述のように、事前に入力されていますDBから離れているため、デフォルトで有効になります)。
ただし、ページ自体のすべての要素が有効になったら、フォームをまだ送信したくありません。代わりに、残りの半分の要素とともにモーダルを表示したいと思います(ここでも、DBからの情報が事前に入力されています-ユーザーにその情報を確認してもらいたいです)。モーダルに含まれている送信ボタンをクリックすると、同じ通常のHTML5検証を実行してから、実際にフォームを送信します(すべてがまだ有効である限り)。
そのため、別の回答で次のjqueryを見つけました。これにより、ブラウザーはフォームでHTML5検証を実行できますが、送信イベントはブロックされます。
$(function() {
$('#form').submit(function(event){
// cancels the form submission
event.preventDefault();
});
});
私の問題はこれです。上記のjqueryは、最初の送信ボタンのクリックでのみ実行され、2番目のボタンのクリックでは実行されません。これを行う方法があれば、私の問題は解決すると思います。繰り返しになりますが、これを行う理由は、フォーム全体が完全に送信される前にポップアップするモーダルに表示される情報をユーザーに確認してもらいたいためです...モーダルを使用しないことでこれを軽減できることを知っていますすべてを1ページにまとめていますが、私は本当にモーダルを使用したいと思っています。この質問が見当違いであるか、すでに回答されているか、混乱している、または他の何かである場合は申し訳ありません。紛らわしい場合や、さらに説明やコードが必要な場合は、お知らせください。質問を編集します。
前もって感謝します。