【问题标题】:How to pass javascript var to server side on asp.net如何将javascript var传递到asp.net上的服务器端
【发布时间】:2011-04-11 19:34:21
【问题描述】:

我正在尝试将 textarea 值传递给服务器端。虽然 textarea 不能 runat=server 。 这是我的代码:

<script type="text/javascript">
        function replace() {
            //Replace < and > on textarea
            var obj = document.getElementById('recipient_list');
            var str = obj.value;
            str = str.replace(/</i, "(");
            str = str.replace(/>/i, ")");
            obj.value = str;
            alert("rec_lst.value: " + document.getElementById('recipient_list').value);

            //Pass value to server.
            alert("passing to server");
            document.getElementById("ctl00$ContentPlaceHolder1$txtEmails").value = str;
            alert("Passed to server");
            alert("txtEmails.value: " + document.getElementById("ctl00$ContentPlaceHolder1$txtEmails").value);
        }
    </script>

这不起作用...任何想法如何解决或更好地实现这个?...

【问题讨论】:

  • 究竟是什么不起作用?此外,ctl00$ContentPlaceHolder1$txtEmails(以及其他)看起来很像 ASP.NET 控件名称,而不是 id。也许改用ctl00_ContentPlaceHolder1_txtEmails

标签: javascript asp.net


【解决方案1】:

试试这个:

var txtEmail = document.getElementById("<%=txtEmails.ClientID%>");
txtEmail.value = str;

但是这不会向服务器传递任何内容,只需更改文本框的值。

要将其发送到服务器,用户必须单击提交按钮,或者如果您有服务器端按钮,则有这样的代码来“自动单击”它从而执行回发:

document.getElementById("<%=btnSubmit.ClientID%>").click();

【讨论】:

  • ...或者执行一些 Ajax 操作。不过更复杂。
  • @Nova 取决于他想对更改后的值做什么.. :)
  • 好吧,也许有更简单的方法来做我想做的事。基本上我使用的是 plaxo widger,所以我有一个 textarea(不能 runat=server)和一个包含“”的电子邮件列表。由于安全原因,ASP.net 不会使用 。因此,在 javascript 函数中,我将 替换为 ( 和 )。现在,我需要将 textarea 中的所有内容传递给服务器,以便获取电子邮件地址。
【解决方案2】:

您不能使用 JS 将值从客户端传递到服务器。

JS 只是一个客户端代码。如果你能做这样的事情,Hacking 将变得如此简单:)

您可以做的一件事是将一些文本或标签控件添加为不可见并将值分配给控件并在某些事件发生时将其传递给服务器。

示例代码

 <asp:TextBox ID="textbox1" runat="server" ></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button"  OnClientClick="callOnEvets()"/>



function callOnEvets()
    {document.getElementById('textbox1').value = 10; }

【讨论】:

  • 我尝试这样做,但当我在文本框上设置 runat=server 时不知何故它不起作用,有什么想法吗?
  • 你可以添加一个可以是 runat=server 的不可见控件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多