如何在asp.net上将javascript变量传递到服务器端

如何在asp.net上将javascript变量传递到服务器端,javascript,asp.net,Javascript,Asp.net,我正在尝试将textarea值传递到服务器端。但text区域不能在=服务器上运行。 这是我的密码: <script type="text/javascript"> function replace() { //Replace < and > on textarea var obj = document.getElementById('recipient_list'); var str

我正在尝试将textarea值传递到服务器端。但text区域不能在=服务器上运行。 这是我的密码:

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

函数替换(){
//替换文本区域上的<和>
var obj=document.getElementById(“收件人列表”);
var-str=对象值;
str=str.replace(//i,“)”;
obj.value=str;
警报(“rec_lst.value:+document.getElementById('recipient_list').value);
//将值传递给服务器。
警报(“传递到服务器”);
document.getElementById(“ctl00$ContentPlaceholder 1$txtEmails”).value=str;
警报(“传递到服务器”);
警报(“txtEmails.value:+document.getElementById(“ctl00$ContentPlaceHolder1$txtEmails”).value);
}

但这不起作用。。。有没有办法解决或更好地实现这个问题?..

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

JS只是一个客户端代码。如果你能做到这一点,黑客就很容易:)

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

示例代码

 <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; }

函数callOnEvets()
{document.getElementById('textbox1')。值=10;}
试试这个:

var txtEmail = document.getElementById("<%=txtEmails.ClientID%>");
txtEmail.value = str;
var txtEmail=document.getElementById(“”);
txtEmail.value=str;
但是,这不会向服务器传递任何信息,只需更改文本框值即可

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

document.getElementById("<%=btnSubmit.ClientID%>").click();
document.getElementById(“”)。单击();

到底是什么不起作用?另外,
ctl00$contentplaceholder 1$txtEmails
(以及其他)看起来很像ASP.NET控件名,而不是id。也许可以试试
ctl00\u contentplaceholder 1\u txtEmails
?我试过了,但当我在文本框上运行at=server时,它不起作用,有什么想法吗?您可以添加一个不可见的控件,它可以是runat=server?…或者执行一些Ajax操作。但更复杂。@Nova取决于他想对更改后的值做什么:)好吧,也许有更简单的方法来做我想做的事。基本上,我使用的是plaxo widger,所以我有一个textarea(不能在=服务器上运行),其中有一个包含“”的电子邮件列表。由于安全原因,ASP.net不会使用<和>。因此,在javascript函数中,我将替换为(and)。现在,我需要将文本区域中的内容传递到服务器,以便获得电子邮件地址。