Java struts在没有js的情况下将重点放在验证后的字段上

Java struts在没有js的情况下将重点放在验证后的字段上,java,javascript,html,struts,Java,Javascript,Html,Struts,我正在使用struts(表单)+验证 我只是想问一下,在没有javascript的情况下,我是否可以在验证之后将焦点设置在表单上的某个字段上?我想我在编程雅加达struts的书中读到了一些东西,但我记不得了 谢谢您可以设置输入的tabindex=“1”属性,当页面重新加载时,您希望该属性首先获得焦点。您不能使用纯HTML在特定字段上设置焦点。Bozho提出的tabindex想法很好,但只有在第一次按tab键时,它才会起作用。然而,它的缺点是改变了输入元素的制表顺序。不是真正的用户友好 为此,您真

我正在使用struts(表单)+验证 我只是想问一下,在没有javascript的情况下,我是否可以在验证之后将焦点设置在表单上的某个字段上?我想我在编程雅加达struts的书中读到了一些东西,但我记不得了


谢谢

您可以设置输入的
tabindex=“1”
属性,当页面重新加载时,您希望该属性首先获得焦点。

您不能使用纯HTML在特定字段上设置焦点。Bozho提出的
tabindex
想法很好,但只有在第一次按tab键时,它才会起作用。然而,它的缺点是改变了输入元素的制表顺序。不是真正的用户友好

为此,您真的需要获取JavaScript。只需做如下操作:

window.onload = function() {
   document.formname.${inputname}.focus();
   // or:
   document.getElementById(${inputid}).focus();
};
…其中,
${inputname}
动态解析为输入字段的名称,如
中所示;其中,
${inputid}
解析为输入字段的ID,如
中所示。
仅此而已。

如果不使用JavaScript,就无法在字段上设置焦点。其他人也尝试过,但失败了(CSS是他们首先考虑的地方,但这也不能解决问题)


不确定您在雅加达Struts一书中读到了什么,但可能您指的是Struts标签的
focus
属性?这将焦点设置在所需的表单字段上,而无需添加JavaScript。但是Struts将添加JavaScript,因此这意味着您没有JavaScript,也没有JavaScript。

他说“wihtout js”,这就是为什么我给出了我能想到的唯一选项(有缺点)。顺便说一句,即使不按tab键也可以设置焦点。@Bozho:对不起,在一个基本的测试用例中,在我这里介绍的5个主要Web浏览器中,页面加载后,该字段没有立即获得焦点。啊,好的。我在看一个设置了tabindex的站点,但它似乎也有一个“隐藏”的js。