【问题标题】:How to pass variable from jquery to code behind (C#)?如何将变量从 jquery 传递到代码后面(C#)?
【发布时间】:2011-10-23 07:00:39
【问题描述】:

这是我的代码,但它不起作用(后面的代码为空字符串): `

<head id="Head1" runat="server">
<title>Pass Javascript Variables to Server</title>
     <script type="text/javascript">             // Second Step
         function f() {
             $("[id$='inpHide']").val("My JavaScript Value");

         }
    </script>
</head>

<body onload="SetHiddenVariable()">
    <form id="form1" runat="server">
    <div>  
        <input id="inpHide" type="hidden" runat="server" />  
        <asp:Button ID="btnJSValue" Text="Click" runat="server" OnClientClick="f"/>
        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
    </div>
    </form>
</body>

`

【问题讨论】:

    标签: c# jquery asp.net variables code-behind


    【解决方案1】:

    您的代码中有几个问题。在onClientClick 中调用f 函数时括号丢失,如果元素有id,你可以使用id 来选择它#

    <head id="Head1" runat="server">
    <title>Pass Javascript Variables to Server</title>
         <script type="text/javascript">             // Second Step
             function f() {
                 $("input[id*='inpHide']").val("My JavaScript Value");
             }
        </script>
    </head>
    
    <body>
        <form id="form1" runat="server">
        <div>  
            <input id="inpHide" type="hidden" runat="server" />  
            <asp:Button ID="btnJSValue" Text="Click" runat="server" OnClientClick="f()"/>
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
        </div>
        </form>
    </body>
    

    【讨论】:

    • 他的输入是runat="server"。在此示例中,ClientID 将为“inpHide”,但在现实世界中,它可能位于其他命名容器中。我想这就是为什么他使用结尾语法$("[id$='inpHide']")
    • @Nickolay - 它已经是您的代码 sn-p 的一部分。它将在页面加载时执行该方法。我现在已将其删除,因为您不知道该方法,因此需要它。
    • 看他的标记很简单,但如果它在控件或母版页中,它应该是客户端 ID。
    • *= 将在 id 中搜索,它应该可以正常工作。当它在页面上呈现时,你能检查这个输入元素的 id 是什么吗?
    • 查看页面源代码。右键单击页面,然后单击查看源代码或查看页面源代码,您可以看到任何选项。
    【解决方案2】:

    您的&lt;input&gt; 标签需要名称属性,否则不会发布。

    【讨论】:

      【解决方案3】:

      Sean McMillan 的回应是对的,但我认为你也需要改变这一点:

      <asp:Button ID="btnJSValue" Text="Click" runat="server" OnClientClick="f"/>
      

      <asp:Button ID="btnJSValue" Text="Click" runat="server" OnClientClick="f();"/>
      

      【讨论】:

      • 你确定你的f函数被调用了吗?如果你把alert 放进去?
      • if after $("input[id*='inpHide']").val("My JavaScript Value"); set alert("something") 它不会调用 alert... –
      • 那你的线路出错了,在firefox中查看错误控制台(ctrl+shift+J)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多