Javascript 客户端数据传输到服务器端
我尝试使用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
<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>