我从ASP.Net调用了一个jQuery模态对话函数,我正在向它传递一些参数。其中一个参数包含#符号,因此,jQuery模式对话框调用不会执行。
解决此问题的方法是什么?我尝试通过用'\#'替换字符串'#'来逃避字符,但仍然无效。
感谢。
我头顶的代码..
String var1 = "#3 and #4 should be on the list.";
lnkDetails.OnClientClick = "openDialog('" + var1 + "');
正常的jQuery对话框功能:
function openDialog(varPassed) {
$("#divModal").dialog({
width: 600,
});
$('#<%= label1.ClientID %>').text(varPassed);
更新:由于这一行,似乎模态没有出现:
$('#<%= label1.ClientID %>').text(varPassed);
当赋值给模态对话框本身div内的标签时,模态窗口不显示。
这是模态窗口。
<div id="divMaterialDetails" title="Material Details" style="display:none" >
<asp:Label ID="label1" runat="server" CssClass="formLabel"/>
</div>
如果我注释掉了值的赋值,则会显示模态。
那么我怎样才能将传递给模态的值赋给标签,以便显示模态?
答案 0 :(得分:1)
#标志根本不是问题。 dialog
方法不是jQuery本身的一部分,但它是jQuery UI的一部分。您是否也包含jQuery UI库,作为jQuery的兼容版本?注释掉/删除$("#divModal").dialog
电话,看看是否一切正常。我测试了这个和没有这个部分的情况,并且在这个行之后它没有执行导致错误的行之后的行。当我包含jQuery UI时,它开始起作用。
一般情况下,如果您不确定代码可能出现什么问题,请尝试注释掉您认为可能导致问题的部分内容,只要注释/删除即可解决问题。通过逐一消除可能的“麻烦制造者”,更容易找到正在发生的事情。当然,使用调试器 - 对于Firefox,使用JavaScript控制台的Firebug扩展非常有用。您可以阅读可能导致问题真正根源的错误消息。
顺便说一句,如果您不希望浏览器关注点击链接,请考虑将return false;
添加到OnClientClick
,例如:
lnkDetails.OnClientClick = "openDialog('" + var1 + "');return false;";
检查this question以获取更多相关信息。
编辑:
我的版本可在线获取:
所有内容都在Default.aspx
和Default.aspx.cs
文件中,控件在Default.aspx.designer.cs
中创建。您可以通过CodeRun发布您的版本,向我们展示可能导致问题的背景和其他元素。