将变量传递给Bootstrap模式?

时间:2013-12-17 19:25:27

标签: javascript jquery asp.net twitter-bootstrap

我搜索了其他“变量到模态”的线程,我找不到我需要的答案。我有一个ASP.NET应用程序(非MVC),我有一个生成一系列按钮的网格。我正在尝试将我的模态操作保留在客户端。我生成的按钮代码如下所示:

    <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 个答案:

答案 0 :(得分:1)

您可以随时将事件附加到模态,以显示它,并附加隐藏的输入字段或设置已存在的隐藏输入字段的值。每次显示模态时都应调用show.bs.modal事件,即使Bootstrap处理模态显示或者您是从JavaScript显示它。

$('#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"); 
});

请注意,这需要隐藏字段已存在于模态窗口内。