jQuery使用数字(#)符号传递字符串参数

时间:2013-02-07 23:26:55

标签: jquery asp.net numbers jquery-ui-dialog symbols

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

如果我注释掉了值的赋值,则会显示模态。

那么我怎样才能将传递给模态的值赋给标签,以便显示模态?

1 个答案:

答案 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.aspxDefault.aspx.cs文件中,控件在Default.aspx.designer.cs中创建。您可以通过CodeRun发布您的版本,向我们展示可能导致问题的背景和其他元素。