【问题标题】:pass runat="sever" or control of asp.net value to html tags将 runat="sever" 或对 asp.net 值的控制传递给 html 标签
【发布时间】:2013-08-24 09:18:26
【问题描述】:

我的 runat="sever" 标签

 <asp:Label ID="Label1" runat="server" Text="hello"></asp:Label>

我的html标签

<form >  
<input type="text" name="requestparameter" id="requestparameter" ><br />
<input type="submit" name="submit"  value="Submit">
</form>

当我以前单击提交按钮时,我希望将 Label1.Text 值存储在请求参数中

【问题讨论】:

  • 您可以在提交表单之前使用 jquery。$("#requestparameter").val($("#Label1").text);
  • @Nilesh 我试过了,但它不起作用 ....
  • 这可能不起作用,因为您将 Label1 作为 runat 服务器。检查服务器为标签生成的 Id。或者您可以按照@skhurams 的建议使用ClientIdMode = static
  • @Nilesh 我尝试过使用 skurams 代码,但它正在将 requestparameter 的值传递给 Label1,这只是一秒钟......但我希望 Label1 值到 requestparameter
  • 好吧,我已经更新了代码

标签: javascript html asp.net


【解决方案1】:

嗨,你可以试试 Nilesh 写的内容

或者你可以试试这个。

<asp:Label ID="Label1" runat="server" Text="hello"></asp:Label>
<form >  
       <input type="text" name="requestparameter" id="requestparameter" ><br />
       <input type="submit" name="submit"  value="Submit" onclick="SetValue()">
</form>
<script>
    function SetValue()
    {
        $("#requestparameter").val($("#<%= Label1.ClientID %>").text());
    }
</script>

因为当 asp.net 呈现 HTML 时,它会以不同于在 aspx 页面中的方式转换元素的 ID。 如果要在渲染时获取 ID 的值,可以使用 Control.ClientID 属性。

【讨论】:

  • 你想在服务器上获得价值
  • 您是否在浏览器控制台中遇到任何错误。要查看错误,您可以按 F12
【解决方案2】:

也许这会有所帮助

        <form > 
  <asp:Label ID="Label1" ClientIDMode='static' runat="server" Text="hello"></asp:Label> 
            <input type="text" name="requestparameter" ClientIDMode='static' id="requestparameter" onclick='SetValue' ><br />
            <input type="submit" name="submit"  value="Submit">
            </form>
            <script>
            function SetValue(){
    document.getElementById('<%=requestparameter.ClientID %>').value=     document.getElementById('<%=Label1.ClientID %>').innerHTML
            }
            </script>

【讨论】:

  • 你在哪里调用 SetValue() 函数?为什么将 ClientIDMode='static' 添加到 requestparameter ?
  • 我希望 label1 文本值到 requestparameter....而不是 requestparameter 值到 label1
  • 尝试使用 但不起作用
【解决方案3】:

如果您不想在服务器上发布任何内容,请按照之前发布的答案进行操作,但请使用return false

<asp:Label ID="Label1" runat="server" Text="hello"></asp:Label>
<form >  
       <input type="text" name="requestparameter" id="requestparameter" ><br />
       <input type="submit" name="submit"  value="Submit" onclick="SetValue()">
</form>
<script>
    function SetValue()
    {
        $("#requestparameter").val($("#<%= Label1.ClientID %>").text());
        return false;
    }
</script>

return false 将阻止事件的默认功能。即:将表单发布到服务器是提交按钮的默认功能。

您可以将&lt;input type="submit" name="submit" value="Submit" onclick="SetValue()"&gt; 更改为&lt;input type="button" name="submit" value="Submit" onclick="SetValue()"&gt;,而不是添加return false(请参阅类型的更改)

另外,记得添加 jQuery 引用。

【讨论】:

    【解决方案4】:

    试试这个。您想在脚本中放置一个调试器并检查您从标签中获得的值。

    <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
        <script type="text/javascript">
            $(document).ready(function () {
                $("#testid").click(function () {
                    debugger;
                    $("#requestParameter").val($('#<%=label1.ClientID %>').text());
                    alert($("#requestParameter").val());
                });
            }); 
        </script>
    </asp:Content>
    <asp:Content ID="BodyContent" runat="server"  ContentPlaceHolderID="MainContent">
        <asp:Label ID="label1" runat="server" Text="Hello"></asp:Label>
        <input type="text" id="requestParameter" />
        <input type="button" value="test"  id="testid"/>
    </asp:Content>
    

    编辑:修改了代码。这按预期工作。

    【讨论】:

    • 服务器为Label1生成的ID是什么?
    • 我面前真的没有IDE,但我编辑了代码,你可以试试。基本上它就像旧的 ASP 代码。你可以试试吗?
    • 当然它支持 我已经检查过
    • @skhurams 我说的是 在这个 ClientIDMode='static' 不支持
    • 使用小写的clientidmode,也使用ranat=server
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2020-05-14
    相关资源
    最近更新 更多