我在这里有一个bootstrap模式的问题,所以在我的应用程序的后端我从SQL中提取数据,我调用这样的JS函数:
ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowPopup",
"MailLanguageChange('" + Description + "','" + TextResult + "');", true);
JS看起来像这样:
function MailLanguageChange(Name, Text) {
$('#MainContent_NewMailTemplate').modal('show');
document.getElementById("Upper_txtDesc").value = Name;
document.getElementById("TextEditorTextArea").innerHTML = Text;
}
所以firebug遇到了这个函数的断点,所以我确信调用函数确实有效,但是问题就出现了,JS正在尝试将这些数据应用到模态上,然后加载模态的所有元素。
但是当我将这个模态用于多个purpuses时...无论如何都要写下来,“在显示模态之前不要做任何事情”?
$('#MainContent_NewMailTemplate').modal('show');
正如文档所说,它在模态实际显示之前返回给调用者......我怎么能通过它?
编辑:
这就是我也尝试过的方式
function MailLanguageChange(Name, Text) {
$('#MainContent_NewMailTemplate').modal('show');
$("#MainContent_NewMailTemplate").on('shown.bs.modal', function () {
document.getElementById("Upper_txtDesc").value = Name;
document.getElementById("TextEditorTextArea").innerHTML = Text;
});
}
结论:
使用@Guruprasad Rao提供的全局变量逻辑 我最后只是使用
$(document).ready(function () {
document.getElementById("Upper_txtDesc").value = name;
document.getElementById("TextEditorTextArea").innerHTML = text;
});
谢谢
答案 0 :(得分:1)
使用twitter-bootstrap's
shown.bs.modal
方法,如下所示:
$("#yourmodalid").on('shown.bs.modal',function(){
//Do whatever you want here
});
还有其他几个 events
来研究modal
<强>更新强>
看到你首先显示modal
然后你正在注册该事件..所以我建议你在下面的步骤。
- 在js页面的顶部声明2个全局变量。
<强>实施例强>
var name,text;
- 在
中分配值function MailLanguageChange
。
<强>实施例强>
function MailLanguageChange(Name, Text) {
name=Name;
text=Text;
$('#MainContent_NewMailTemplate').modal('show');
}
- 将
之外的某处shown.bs.modal
事件保留在上述function
<强>实施例强>
$("#MainContent_NewMailTemplate").on('shown.bs.modal', function () {
document.getElementById("Upper_txtDesc").value = name;
document.getElementById("TextEditorTextArea").innerHTML = text;
});