我的asp.net中有一个接受不同值的文本框,我写了一个脚本,每次按F5按钮时,文本框中的值都会被清除。当我运行代码并按F5时,文本框值存在。我该如何解决这个问题?
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="wellDesigned0428._default" %>
<!DOCTYPE html>
<script runat="server"></script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="~/StyleSheet1.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<form id="form1" runat="server">
<div class="body">
<div class="content ">
<asp:TextBox ID="txtCodePers" runat="server" CssClass="textbox" AutoPostBack="True" OnTextChanged="txtCodePers_TextChanged" MaxLength="4" ></asp:TextBox>
<asp:TextBox ID="txtName" runat="server" CssClass="textbox"></asp:TextBox>
</div>
</form>
<script type="text/javascript">
document.onkeydown = fkey;
document.onkeyup = fkey;
document.onkeypress = fkey;
function fkey(e) {
if (e.keyCode == 116) {
alert("f5 pressed");
document.getElementById("txtCodePers").value = "";
document.getElementById("txtName").value = "";
}
}
</script>
</body>
</html>
答案 0 :(得分:0)
我认为问题在于您使用的是 txtCodePers 的 ID,它是来自服务器端的 ID。设置 clientid 或使用 vew 源检查 txtCodePers 的 id 是什么。
除此之外,我不建议您覆盖 f5 的默认行为,即刷新。如果用户用户使用鼠标怎么办?或使用浏览器按钮进行刷新。
答案 1 :(得分:0)
您的 ClientID
的 TextBox
与 ID
属性中给出的不同。所以你的javascript不会找到元素。
您可以在脚本中使用 ClientID
,也可以在简单的情况下将 ClientIDMode
属性添加到文本框:
ClientIDMode="Static"
这将产生与您的 ClientID
相同的 ID
,您无需更改您的 javascript。