0

我正在从 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>

如果我注释掉值的分配,模式就会出现。

那么我如何能够将传递给模态的值分配给标签,以便模态显示?

4

1 回答 1

1

#符号根本不是问题。dialog方法不是 jQuery 本身的一部分,但它是jQuery UI的一部分。你是否也包含了 jQuery UI 库,作为 jQuery 的兼容版本?注释掉/删除$("#divModal").dialog电话,看看是否一切正常。我在有和没有这部分的情况下对此进行了测试,并且在这一行中,它没有在导致错误的那一行之后执行该行。当我包含 jQuery UI 时,它开始工作。

一般来说,如果您不确定您的代码可能有什么问题,请尝试注释掉一些您认为可能会导致问题的部分,只要注释掉/删除某些内容就能解决问题。通过逐一排除可能的“麻烦制造者”,更容易找出发生了什么。当然,使用调试器 - 对于 Firefox,带有 JavaScript 控制台的Firebug扩展非常有用。您可以阅读可以引导您找到问题真正根源的错误消息。

顺便说一句,如果您不希望浏览器跟随点击的链接,请考虑添加return false;以下OnClientClick内容:

lnkDetails.OnClientClick = "openDialog('" + var1 + "');return false;";

检查此问题以获取有关此的更多信息。

编辑:

我的版本在线可用:

一切都在Default.aspx其中,Default.aspx.cs文件、控件都在Default.aspx.designer.cs. 您可以通过CodeRun发布您的版本,向我们展示可能导致问题的上下文和其他元素。

于 2013-02-08T01:12:32.743 回答