私はjQueryとjsの完全な初心者であり、私が思いついたものよりもエレガントなソリューションがあると確信しています-しかし、これは私がこれまでに持っていたものであり、困惑しています.
さまざまな理由で送信に時間がかかるフォームがあります.validationEngineを使用してフォームフィールドをインラインで検証していますが、これはうまく機能しています。次に、ポップアップ div を追加して、アプリケーションが要求された検索を実行する理由を訪問者に伝える必要がありました。
私の元のソリューションは、フォームが完全に記入されたかどうかに関係なく、訪問者が送信をクリックしたときにポップアップ div が表示されたことを受け入れてうまく機能しました。フォームが完全に記入されている場合、すべてが期待どおりに機能します。フィールド通知と私のポップアップ div は引き続き表示されますが、明らかにフォームは送信されません。それはこのコードで起こります:
jQuery(document).ready(function(){
jQuery("#approvalForm").validationEngine('attach');
});
$(document).ready(function() {
$('#approvalForm').submit(function() {
$('#progress').show();
});
});
したがって、いくつかの調査の後、いくつかの変更を加えた結果、次のコードが得られました。
jQuery(document).ready(function(){
jQuery("#approvalForm").validationEngine('attach', {
onValidationComplete: function(form, status){
if (status == true) {
$('#approvalForm').submit(function() {
$('#progress').show();
});
}
}
});
});
そして、送信ボタンを2回クリックする必要があり、ポップアップdivが表示されるがフォームが送信されないことを除いて、すべてが正しく機能します。