如何在回发后保持对asp文本框或任何html元素的关注)
How to retain focus on asp textbox or any html element) after postback
我正在创建一个大约有20个asp:TextBox的网站,它们都使用回发。我遇到的问题是,每次回发时,文本框都会失去焦点。我设法保持了对称为回发的元素的关注,但这并不是我想要的,因为到那个时候,新框就被聚焦了。我发现很少有java脚本应该在发布后保持焦点,但它们中的任何一个都无法工作。老实说,我不太了解javascript,也不知道如何使用正确的过程,但似乎没有办法只使用html和c#来实现我想要的。
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<div class="form-group" id="vacancyTitleGroup" runat="server">
<label for="inputTitle" class="col-sm-5 control-label">Vacancy title <b>*</b></label>
<div class="col-sm-7">
<asp:TextBox runat="server" type="text" class="form-control" ID="inputTitle" placeholder="Vacancy title" OnTextChanged="inputTitle_TextChanged" AutoPostBack="True" MaxLength="50"></asp:TextBox>
</div>
</div>
<div class="form-group" id="positionGroup" runat="server">
<label for="inputPosition" class="col-sm-5 control-label">Employee Position</label>
<div class="col-sm-7">
<asp:TextBox runat="server" type="text" class="form-control" ID="inputPosition" placeholder="Employee Position" OnTextChanged="inputPosition_TextChanged" AutoPostBack="True"></asp:TextBox>
</div>
</div>
<div class="form-group" id="disciplineGroup" runat="server">
<label for="inputDiscipline" class="col-sm-5 control-label">Job Field/Discipline</label>
<div class="col-sm-7">
<asp:TextBox runat="server" type="text" class="form-control" ID="inputDiscipline" placeholder="Job Field/Discipline" OnTextChanged="inputDiscipline_TextChanged" AutoPostBack="True"></asp:TextBox>
</div>
</div>
<div class="form-group" id="contractGroup" runat="server">
<label for="inputContract" class="col-sm-5 control-label">Contract Type <b>*</b></label>
<div class="col-sm-7">
<asp:TextBox runat="server" type="text" class="form-control" ID="inputContract" placeholder="Contract Type" AutoPostBack="True" OnTextChanged="inputContract_TextChanged"></asp:TextBox>
</div>
</div>
以下是我想保持关注的一些html对象,我已经为此坚持了半天,如果有人能给我一个粗略的指导,告诉我如何在回邮后保持关注,我将永远感激。
我认为没有一种简单的方法可以直接保持焦点,但你可以添加一个隐藏字段并将活动元素发布到其中:
假设隐藏字段的id为"hdnSelectedField"。一个应该工作。
使用JQuery:
<asp:HiddenField ID="hdnSelectedField" runat="server" ClientIDMode="Static" />
<script>
// this creates an event that fires any time any "input" type element gets focus
$("input").focus(function (e) {
// get the target's type attribute (i.e. text, button, checkbox) and make sure it isn't submit
if ($(e.target).attr('type') != 'submit') {
// get the currently focused element's id & store it in the hidden field for postback processing
var activeElem = document.activeElement.name;
$("#hdnSelectedField").val(activeElem);
// this just makes it obvious that something is happening. Set a <span> to the field's id
$("#selectedElementName").html(activeElem);
}
});
</script>
页面加载:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
var fieldSelectedName = hdnSelectedField.Value;
if(!String.IsNullOrEmpty(fieldSelectedName))
Page.FindControl(fieldSelectedName).Focus();
}
}
- 编辑为使用clientIDMode=static并在asp.net面板中工作。请注意,它现在按名称进行搜索
相关文章:
- HTML 5 和 3.js 代码不会在网页上显示任何内容
- jQuery选择器不识别任何动态创建的HTML输入函数
- 如何获取保存在变量中的HTML代码的任何属性的值
- 如何通过ajax php将图像上传到服务器本地目录,其中html表单haven't任何传统的提交按钮
- 如何在javascript中调用onclick事件?我没有'我不想在我的HTML页面中使用任何事件
- 如何使用 html 类或 id 在任何地方显示内容
- 使用HTML和任何服务器端语言(PHP,.net,ruby)制作的网站是否可以在每个具有浏览器的设备上工作
- 如何在不使用任何 html 输入/搜索元素的情况下读取本地客户端文本文件
- 当“不相关”的 html 选择元素没有选择任何选项时,如何退出 jQuery 事件
- 可以'在html中,没有任何东西可以停留在图片上方
- 有没有任何方法可以将json对象存储在HTML标记的默认/自定义属性中,比如<tr>
- 是否有任何Ruby工具或JavaScript-Lib来验证html的格式是否正确
- 将html元素定位在页面中的任何x/y坐标处
- 使用jQuery检查html元素中是否存在任何字符串
- 如何在URL中不指定.html、.json的情况下配置web.xml来服务任何请求
- 删除HTML脚本标记会对它所包含的JavaScript产生任何影响吗
- 是否有任何jquery可以检测html标记是否未关闭?或页面未完全加载
- 任何一个输入所需的文本区域或 HTML 表单中的复选框
- 正则表达式选择任何 html 标记之间的字符串
- 任何使 HTML 禁用复选框变暗的方法