Javascript 客户端数据传输到服务器端

Javascript 客户端数据传输到服务器端,javascript,c#,asp.net,Javascript,C#,Asp.net,我尝试使用JavaScript弹出框(提示符)在我的网站上获取一些用户输入,然后根据用户的操作在服务器端执行更多操作 由于缺少文字,弹出框会弹出 以下是我为此尝试使用的代码: <div> <asp:HiddenField ID="hidden" runat="server" /> </div> <script> function userInput() { var reason = prompt("Enter rea

我尝试使用JavaScript弹出框(提示符)在我的网站上获取一些用户输入,然后根据用户的操作在服务器端执行更多操作

由于缺少文字,弹出框会弹出

以下是我为此尝试使用的代码:

<div>
    <asp:HiddenField ID="hidden" runat="server" />
</div>
<script>
    function userInput() {
        var reason = prompt("Enter reason for deleting:", "");
        //User pressed okay but didn't type anything
        while (reason == "") {
            //Keeps cycling until reason given or cancel is hit
            reason = prompt("Enter reason for deleting:", "");
        }
        if (reason != "" && reason != "Code:CancelDelete") {
            //User typed something and hit okay
            document.getElementById('hidden').innerHTML = reason.toString();
            $('#deleteReason').val(reason.toString());
            $("#hidden").val(reason.toString());
        }
        else {
            //User hits cancel
            document.getElementById('hidden').nodeValue = "Code:CancelDelete";
        }
    }
</script>
在这件事上多少有些不知所措

更新1: 以下是在客户端浏览器(Firefox)上为隐藏字段生成的html代码:

<input name="ctl00$IndividualPageContent$hidden" 
id="IndividualPageContent_hidden" type="hidden">

您试图设置id为“hidden”的元素的值,但这不是隐藏输入的id

正确的id为“IndividualPageContent_hidden”

改为如下设置值:

document.getElementById('IndividualPageContent_hidden').value = 'Your value here';

当您在webform上键入元素ID时,asp.net会根据某些内容(您的表单、中继器等)为其提供唯一的ID

如果要使用具有此ID的jQuery,可以使用ClientId属性

大概是这样的:

if (reason != "" && reason != "Code:CancelDelete") {
            //If your server id= "hidden"
            ele = $("#<%= hidden.ClientID %>");
            ele.html() = reason.toString();
            ...
        }
if(原因!=”&&reason!=“代码:取消删除”){
//如果您的服务器id=“隐藏”
ele=$(“#”)元;
ele.html()=reason.toString();
...
}
另一个选项是将静态ID添加到服务器元素中,然后代码将按原样工作。(html将以ID=hidden的形式呈现)

clientmode=“静态”



隐藏字段的实际客户端HTML是什么?@David我定义隐藏字段的地方显示的那一小段是我为它定义的唯一一段。看看生成的实际客户端HTML。JavaScript代码将与浏览器中的HTML交互,而不是ASP.NET服务器端代码。@David只是想澄清一下,我不能使用基于ASP的控件将数据发送到服务器端?如中所示,我可以更改asp标签和html标签的文本,尝试同时更改这两个标签,但只有基于html的标签会更改?@David,或者我的解释有偏差吗?
if (reason != "" && reason != "Code:CancelDelete") {
            //If your server id= "hidden"
            ele = $("#<%= hidden.ClientID %>");
            ele.html() = reason.toString();
            ...
        }
<div>
    <asp:HiddenField ID="hidden" runat="server" ClientIDMode="static"/>
</div>