我正在开发一个asp页面,用户在用户输入文本框后对其进行验证。
手动输入“产品编号”(自由格式)。使用更新后事件,我让页面发布数据并查找产品编号以确定它是否有效。如果无效,则在框中发布错误消息,否则产品编号和描述将放在框中(I.E X1234变为X1234 - RED YO-YO)。这项工作100%罚款。我的问题是,在更新后,所有数据输入项目都会失去焦点。我希望将焦点返回到下一个文本框,以便操作员可以输入下一条所需信息。
注意:到目前为止,我插入了一个动态更改“TABSTOP”编号的函数,以便在验证查找后为“下一个”框分配#1。这适用于我的浏览器(Firefox 3.05)但不在我的IE上(感谢Bill!)。在IE中,当发布完成时,由于某种原因,焦点最终会出现在“输入URL”上,然后点击标签会将焦点放在某个控制按钮上,而该按钮不在我希望的位置附近。
答案 0 :(得分:1)
如果你想做我认为你的事,那就应该这样做。
在您的ASPX页面中:
<script type="text/javascript">
function focusControl(ctrlId) {
document.getElementById(ctrlId).focus();
}
</script>
在您的代码隐藏中:
// 'ctrl' is the name of the ASP.NET TextBox that you want to receive
// focus on load.
Page.ClientScript.RegisterStartupScript(
typeof(Page),
"Focuser",
"focusControl('" + ctrl.ClientID + "');",
true);
答案 1 :(得分:1)