在.ASP页面中将数据验证后设置为文本框

时间:2009-01-28 21:31:08

标签: html focus asp.net

我正在开发一个asp页面,用户在用户输入文本框后对其进行验证。

手动输入“产品编号”(自由格式)。使用更新后事件,我让页面发布数据并查找产品编号以确定它是否有效。如果无效,则在框中发布错误消息,否则产品编号和描述将放在框中(I.E X1234变为X1234 - RED YO-YO)。这项工作100%罚款。我的问题是,在更新后,所有数据输入项目都会失去焦点。我希望将焦点返回到下一个文本框,以便操作员可以输入下一条所需信息。

注意:到目前为止,我插入了一个动态更改“TABSTOP”编号的函数,以便在验证查找后为“下一个”框分配#1。这适用于我的浏览器(Firefox 3.05)但不在我的IE上(感谢Bill!)。在IE中,当发布完成时,由于某种原因,焦点最终会出现在“输入URL”上,然后点击标签会将焦点放在某个控制按钮上,而该按钮不在我希望的位置附近。

2 个答案:

答案 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)