2013-12-17 110 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