2017-01-04 6 views
0

を表示した後、私はこの機能を持っています。クリックしたボタンの値が0でなければ、正常に表示され、送信アクションを実行する必要があります。しかし、値が0の場合、私の目標は2つのオプション、キャンセル、またはOKを含むモーダルを表示しています。しかし、モーダルが表示されているときに、ページがリロードされています。このリロードを防止し、2つのオプション(キャンセルまたはOK)が選択されるまで待機するにはどうすればよいですか?防ぐページのリロードモーダル

+1

このページは参考になりました[event.preventDefault()を使ってイベントをトリガする方法(http://stackoverflow.com/questions/7610871/how-to-trigger-an-event-after-using-event) -preventdefault) – bansi

答えて

0

2日後、私はモーダルが表示されているときに、私が望むものを得る.JavaScriptはユーザーが望むものを得るだろう。値が0の場合

$('button[name="submitbutton"]').click(function(event) { 
     var button = 0; 
     if ($(this).attr('value') == 0) { 

      $('.form.update').submit(function(e){ 
       e.preventDefault(); 
       var datahapus = $(this).serialize(); 

       $('.modal.hapus').modal({ 
        closable : false, 
        onDeny : function(){ 

        }, 
        onApprove : function(){ 
         jQuery.ajax({ 
          type: "POST", 
          url: "<?php echo base_url(); ?>" + "katalog/kelolaPerubahan/1", 
          dataType: 'json', 
          data: datahapus, 
          success: function(res) { 
           updateRow(res, '<?php echo base_url(); ?>'); 
          } 
         }); 
        } 
       }).modal('show'); 
      }); 
     } else { 
      $('.form.update').submit(function(e){ 
       e.preventDefault(); 
       alert(button); 
       jQuery.ajax({ 
        type: "POST", 
        url: "<?php echo base_url(); ?>" + "katalog/kelolaPerubahan/" + button, 
        dataType: 'json', 
        data: $(this).serialize(), 
        success: function(res) { 
         updateRow(res, '<?php echo base_url(); ?>'); 
        } 
       }); 
      }) 

     } 
    }) 

、フォームの値を提出すると私は、ユーザーがモーダルは、JavascriptをAjaxのアクションを実行すると何をすることを選択したときに、モーダル表示するためにイベントを防ぎます。

ご回答いただきありがとうございます。

0

あなたのイベントを提出以内return false;を追加:submitbuttone.preventDefault()アクションを持っていないので、

$('.form.update').submit(function(e){ 

    // submit form information through ajax... 

    return false; // stop form from refreshing page 
}); 
+0

'return false'を追加すると、すべてのコードが動作しません – imilah

+0

ええ、私の謝罪です。 JavaScript LOLの間違ったブロックに追加しました。 1つの瞬間... –

+0

@imilah今すぐお試しください:-) –

1

あなたのページがリロードされ、そしてあなたがモーダルとreloadesに[OK]をクリックすることは待ちませんページ。

$('button[name="submitbutton"]').click(function(e) { 
     e.preventDefault(); 
     var button = 0; 
     if ($(this).attr('value') == 0) { 
      $('.modal.hapus').modal({ 
       closable : false, 
       onDeny : function(){ 

       }, 
       onApprove : function(){ 
        $('.form.update').submit(function(e){ 
         e.preventDefault(); 
         alert("button : 1"); 
         jQuery.ajax({ 
          type: "POST", 
          url: "<?php echo base_url(); ?>" + "katalog/kelolaPerubahan/1", 
          dataType: 'json', 
          data: $(this).serialize(), 
          success: function(res) { 
           updateRow(res, '<?php echo base_url(); ?>'); 
          } 
         }); 
        }); 
       } 
      }).modal('show'); 
     } else { 
      $('.form.update').submit(function(e){ 
       e.preventDefault(); 
       alert(button); 
       jQuery.ajax({ 
        type: "POST", 
        url: "<?php echo base_url(); ?>" + "katalog/kelolaPerubahan/" + button, 
        dataType: 'json', 
        data: $(this).serialize(), 
        success: function(res) { 
         updateRow(res, '<?php echo base_url(); ?>'); 
        } 
       }); 
      }) 

     } 

    }) 

または他のあなたはそのデフォルトのタイプはsubmitので、あなたのページのreloadesで明示的に言及してはいけないので、場合

<button name = "submitbutton" type="button">Click</button> 

などのボタンであることをsubmitbuttonのタイプを指定します。

はこれを試してみてください。

+0

これは間違いありませんが、このコードはモーダルが開くたびにイベントを登録しています..... – Jai

+0

はい、動作していますが、送信アクションはもう機能していません – imilah

+0

'$( '。form.update')でconsole.logを実行できますか?submit(function(e){' onApprove関数でそれがコールに来ているかどうか –

関連する問題