2015-06-28 84 views
1

我從Javascript中切換模型,但它立即消失。我沒有加載bootstrap-modal(這是人們遇到的問題之一)。此外,我試圖消除bootstrap.min.js,並沒有解決它。我試過.modal(),.modal('show').modal('toggle')。此外,這是一個VisualStudio初始化MVC項目,所以我沒有把所有的jquery和bootstrap加載到位。引導模式在ASP MVC 5中消失,而不是從雙重引導引導

編輯 這裏的另一個複雜性是我只想在提交成功時彈出模式。我有一個想法:讓表單提交併將控制器重定向到成功提交的其他頁面 - 庫存清單。從「創建」控制器中,構建一個視圖包,可以告訴庫存清單頁面添加是否成功。然後將該模式放在庫存清單頁面上。不是真正的解決方案 - 一個完整的解決方法。

莫代爾

<div id="confirmAddedToInventoryModal" class="modal fade" role="dialog"> 
    <div class="modal-dialog"> 

     <!-- Modal content--> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal">&times;</button> 
       <h4 class="modal-title">Item Added to Inventory</h4> 
      </div> 
      <div class="modal-body"> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
      </div> 
     </div> 

    </div> 
</div> 

的Javascript

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#create-form').on('submit', function() { $('#confirmAddedToInventoryModal').modal('toggle') }); 
    }) 
</script> 

新的JavaScript嘗試

$(function() { 
     $('#create-button').on('click', function() { 
      $('#confirmAddedToInventoryModal').modal('toggle'); 
     }); 

     $('#confirmAddedToInventoryModal').modal().hide(function() { 
      $('create-form').submit(); 
     }); 
    }); 

模態打開網頁加載,而不僅僅是點擊按鈕。

+0

你試圖控制提交表單,或只顯示某些動作成功完成了確認? –

+0

確認操作成功完成。我意識到這裏的一個基本問題是控制器重定向到另一個頁面,而不是返回到帶有表單的頁面。 – abalter

回答

1

由於看起來您正在嘗試處理提交事件,因此您需要取消該事件。否則,該頁面將繼續提交。 Bootstrap模塊不會阻止,與本機警報不同。

<script> 
    $(function() { 
     // Add the 'e' parameter, so that we can capture the event 
     $('#create-form').on('submit', function (e) { 
      // prevent the event 
      e.preventDefault(); 

      $('#confirmAddedToInventoryModal').modal('toggle'); 
     }); 
    }) 
</script> 

的缺點,這是你需要你的「確認」對話框已被處理後,然後手動提交表單。

+0

這很有道理!所以,我希望表單實際提交。那麼我需要綁定提交到模態關閉事件的表單嗎? – abalter

+0

@abalter是和否。您正在處理事件,您只需要一種方法來重新觸發提交事件,或者您可以使用$ .ajax方法之一通過JavaScript提交表單的內容。 –

+0

@abalter一個選項是不使用提交按鈕,而是使用'type =「按鈕」'(不觸發提交事件)的按鈕作爲表單中的「提交」按鈕。不過,這並不能處理通過其他方式提交的表單。 –

0

它也發生在我身上,我只是擦除佈局上的腳本鏈接 〜/ Scripts/bootstrap.js 它完美的工作!

0

更改按鈕標籤錨標籤:

<a type="button" class="close" data-dismiss="modal">&times;</a>