【问题标题】:struts focus on field after validation without js没有js验证后struts专注于字段
【发布时间】:2010-02-17 11:40:36
【问题描述】:

我正在使用 struts(表单)+ 验证 我只想问是否可以在没有javascript的验证后将焦点设置在表单上的某些字段上?我想我在编程 jakarta struts 的书中写了一些东西,但我不记得了。

谢谢

【问题讨论】:

    标签: java javascript html struts


    【解决方案1】:

    您不能使用纯 HTML 将焦点设置在某个字段上。 Bozho 建议的tabindex 想法很好,但只有在您第一次真正按下 tab 时它才会起作用。然而,它的缺点是它改变了输入元素的跳格顺序。不是真正的用户友好。

    您确实需要为此使用 JavaScript。只需执行以下操作:

    window.onload = function() {
       document.formname.${inputname}.focus();
       // or:
       document.getElementById(${inputid}).focus();
    };
    

    ...${inputname}<input name="foo"> 中动态解析为输入字段的名称,${inputid}<input id="foo"> 中解析为输入字段的 ID。 就是这样。

    【讨论】:

    • 他说“没有 js”,这就是为什么我给出了我能想到的唯一选择(有它的缺点)。顺便说一句,即使不按 Tab,也可以设置焦点。
    • @Bozho:对不起,在一个基本的测试用例中,在我在这里的 5 个主要网络浏览器中的任何一个页面加载后,该字段都没有立即获得焦点。
    • 啊,好的。我正在查看一个设置了 tabindex 的网站,但后来它似乎也有一个“隐藏”的 js。
    【解决方案2】:

    您可以设置要在页面重新加载时首先获得焦点的输入的tabindex="1"属性。

    【讨论】:

      【解决方案3】:

      您不能在不使用 JavaScript 的情况下将焦点设置在字段上。其他人尝试过但都失败了(CSS 是他们首先考虑的地方,但这也不能解决问题)。

      不确定你在 Jakarta Struts 一书中读到了什么,但也许你指的是 Struts <html:form> 标签的 focus 属性?这将焦点放在所需的表单字段上,而无需添加 JavaScript。但是 Struts 会添加 JavaScript,所以这意味着你这边没有 JavaScript,而且根本就没有 JavaScript。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-05
        • 1970-01-01
        • 2011-08-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多