2013-12-17 115 views
2

我搜索了其他「變量爲模態」的線程,我無法完全找到我需要的答案。我有一個ASP.NET應用程序(非MVC),我有一個生成一系列按鈕的網格。我試圖保持我的模式操作在客戶端。我的結果按鈕代碼如下所示:將變量傳遞給Bootstrap模態?

<input type="button" value="Add Note" 
    onclick="return false;javascript:__doPostBack(&#39;ctl00$ContentPlaceHolder1$grd888Poker&#39;,&#39;Button$4001&#39;)" 
class="btn btn-primary btn-xs" 
data-toggle="modal" 
data-target="#myModal" 
entryID="4001" /> 

該模式彈出剛好。但我需要將屬性entryID傳遞給模態中的隱藏字段。 Obv我需要某種JS,但因爲我讓Bootstrap處理模態代碼,所以我沒有任何東西可以覆蓋。如何在這種情況下將變量傳遞給模態?

回答

1

您可以隨時將事件附加到模式,以便在顯示模式時添加隱藏輸入字段或設置已有隱藏輸入字段的值。即使Bootstrap處理模式顯示,或者如果您使用JavaScript顯示,也應該在每次顯示模式時調用show.bs.modal事件。

$('#myModal').on('show.bs.modal', function() { 
    $("#entryField").val($('#myModal').attr("entryID")); 
}) 

$('#myModal').on('show.bs.modal', function() { 
    var hiddenField = $(document.createElement("input")).prop("type", "hidden").appendTo("#myModal"); 
}) 

按鈕事件:

$("input[type='button']").click(function() { 
    $("#myModal").find("input[type='hidden']").val($(this).attr("entryID"); 
}); 

你要知道,這需要隱藏字段已經是模態窗口中存在。

+0

謝謝,這是正確的軌道。但請記住,我有許多具有相同代碼的按鈕。我看到你的代碼如何設置變量,但是如何將它設置爲按下按鈕時的* specific *變量(所有按鈕都打開相同的模式)。 –

+0

您必須在所有按鈕上使用自定義事件。他們可以很容易地設置模態中隱藏字段的值,因爲它是一個靜態元素。但是你看不到哪個按鈕被調用來打開模式。更新答案以包含按鈕事件。 – Loyalar