2014-04-05 83 views
0

我正在設計一個Web應用程序,使用Twitter引導前端框架和Laravel後端框架。後成功執行jQuery代碼

我創建了一個存在於Twitter引導模式中的表單(請參閱http://getbootstrap.com/javascript/#modals),我正在嘗試利用AJAX在不離開頁面的情況下提交表單數據。

現在,我的形式可以做到利用此代碼:

jQuery(function ($) { 
    $('form[data-async]').on('submit', function (event) { 
     var $form = $(this); 
     var $target = $($form.attr('data-target')); 

    $.ajax({ 
     type: $form.attr('method'), 
     url: $form.attr('action'), 
     data: $form.serialize(), 

     success: function (data, status) { 
      $target.html(data); 
     }, 

     error: function() { 
      alert("Please check your submission and try again."); 
     } 
    }); 

    event.preventDefault(); 
}); 
}); 

我試圖關閉模式如果AJAX職位是成功的,但我似乎無法做到這一點。我試過使用:

$('#createTicket').modal('hide'); 

但它會導致腳本因某種原因離開頁面。

有人會知道如果有成功的模式隱藏/切換?如果您需要更多代碼,請告訴我。

回答

0

我真的需要看到你的html是肯定的。嘗試將此屬性添加到您的表單標記。

<form onSubmit='return false;'> 
1

調用preventDefaultstopPropagation方法event對象上要傳遞到窗體的提交處理程序:

event.preventDefault(); 
event.stopPropagation(); 
0

既然你也用.moadl('hide')方法,因此它想工作,但最常用的event.preventDefault()和可能你有JavaScript錯誤(檢查瀏覽器控制檯),所以它不工作,但你可以使用以下方法,它應該工作:

$('form[data-async]').on('submit', function (event) { 
    event.preventDefault(); 
    var $form = $(this); 
    var $target = $($form.attr('data-target')); 
    // Cache a reference of your modal form 
    var createTicket = $('#createTicket'); 

    $.ajax({ 
     //... 
     success:function(data){ 
      createTicket.modal('hide'); 
      // ... 
     } 
    }); 
});