1

2つのボタンがあるフォーム(HTMLとPHPで作成)があります。ボタンの1つはフォームを保存するだけで(INSERT OR UPDATE)、もう1つは同じことを行い、さらに電子メールを送信します。

ボタンの1つが押されるたびに送信アクションを確認するために、jqueryモーダルがあります。ボタンを押した後、プロセスがエラーなしで終了したことを確認するためだけに表示される別のモーダルがあります。

私の問題は、SAVEボタン(メールを送信しないボタン)を押すと表示され、1秒後に消えることです。ボタンを押して閉じるときだけ閉じるはずだった。他のボタンは正しく機能します。

これは私が使用しているコードです:

        $.modal({
            content: $('#' + modalErrorId),
            title: 'Informa\u00E7\u00E3o',
            maxWidth: 500,
            buttons: modalButtons,
            zIndex: 500,
        });

これと一緒に:

$.ajax( {
   type: "POST",
   url: form.attr('action'),
   data: form.serialize(),
   success: function( response ) {
   openModal('modalSuccessMessage');
   }
});
4

1 に答える 1

0

どちらかを試してください

$.ajax( {
   type: "POST",
   url: form.attr('action'),
   data: form.serialize(),
   success: function( response ) {
   openModal('modalSuccessMessage');
   }
});    
return false;

また

e.preventDefault();
$.ajax( {
   type: "POST",
   url: form.attr('action'),
   data: form.serialize(),
   success: function( response ) {
   openModal('modalSuccessMessage');
   }
});

次のようなコードがあるかもしれません。

$('#buttonid').on('click', function(e){
    // ajax call
});

また

$('#formid').on('submit', function(e){
    // ajax call
});

私の推測が正しければ、その理由は

モーダルが表示された後、フォームが通常の方法で送信され、ページが更新され、DOM が更新され、モーダルが消えます。return falseまたはe.preventDefault()、フォームが通常の方法で送信されないようにします。

于 2012-08-08T15:45:44.537 に答える