【问题标题】:Focus dropdown in JSPJSP 中的焦点下拉菜单
【发布时间】:2012-12-17 09:47:34
【问题描述】:

嗨,我对JSP/Jquery/Javascript 有点陌生。我现在正在研究struts。在我的 jsp 文件中,我需要关注页面的 drop-down list onload / 每次页面加载时,我都是这样做的:

<script type="text/javascript">

    $(document).ready(function(){
        $("#fault").focus();
    });
</script>

然后在我的body 中,我使用html 标签:

    <body onload="makeDisableEnable()">

    <s:form>
    <div class="list">
        <table>
            <colgroup>
                <col style="width: 120px;">
                <col style="width: 200px;">
                <col style="width: 120px;">
                <col>
                <col style="width: 120px;">
                <col>
            </colgroup>
            <tbody><tr>
            <th>DROPDOWN ONE<span class="font0">(※)</span></th>
                    <td><html:select property="failCnd" styleId="fault">
                    <html:option value=""></html:option>
                    <c:forEach var="failCnd" items="${failCndList}">
                    <html:option value="${failCnd.wideUseCd}">${f:h(failCnd.wideUseValueView)}</html:option>
                    </c:forEach>
                    </html:select>
                </td>

这是我所做的,但它不起作用。谁能告诉我我做错了什么?或者还有什么其他方法。非常感谢您的帮助。

【问题讨论】:

    标签: java javascript jquery jsp struts


    【解决方案1】:

    试试下面的代码

     <script type="text/javascript">
         $(document).ready(function(){
            $("#fault").focus();
        });
     </script>
    

    HTML 代码

     <body onload="makeDisableEnable()">
    

     <body>
    

    检查这个工作fiddle

    新编辑FIDDLE

    【讨论】:

    • 我需要 makeDisableEnable 方法。
    • 不使用 makeDisableEnable 方法试试。然后检查它的工作与否,如果它工作而不是应用你的 makeDisableEnable 方法
    • 有你的检查小提琴链接
    • 是的,我看到了小提琴链接。但它不工作。它应该集中在下拉列表中。但它没有。
    • 你查看的是哪个浏览器,在chrome中查看
    【解决方案2】:

    如果你想坚持html5,有一个autofocus属性。

    试试:

    <html:select property="failCnd" styleId="fault" autofocus="autofocus">
    

    HTML 5 AutoFocus

    【讨论】:

    • 上面写着"Autofocus" Undefined attribute name
    • 那是因为你没有使用裸 HTML 标签,你使用的是 struts server-side 标签库,它可能忽略了该属性。
    【解决方案3】:

    我认为问题在于&lt;body onload="..."&gt; 破坏了 jQuery。

    http://api.jquery.com/ready/

    .ready() 方法一般与

    属性。如果必须使用负载,要么不要使用 .ready() 或使用 jQuery 的 .load() 方法将加载事件处理程序附加到 窗口或更具体的项目,如图像。

    您可以将 makeDisableEnable() 移动到 jQuery“就绪”块中:

    <script type="text/javascript">
        $(document).ready(function(){
            $("#fault").focus();
            makeDisableEnable();
        });
    </script>
    

    我不知道makeDisableEnable() 是做什么的,如果更有意义,请随意将其移到$("#fault").focus(); 之前。

    【讨论】:

    • 好的,如果它破坏了 jQuery,我可以使用与上述相同的方法,但在 javascript 中?因为我试过了,但它也不起作用。
    • 我想我无法理解你的意思。我的意思是你的“onload”处理程序阻止了 jQuery 之一的工作。请尝试将 makeDisableEnable() 移到 jQuery“就绪”块中:jQuery 指令只是 JavaScript,您可以混合使用。
    • 我的 makeDisableEnable() 方法是一个用于禁用下拉菜单的 javascript。所以我只是在我的 .ready 部分中移动整个 javascript 方法?
    • 哪种方式不起作用? javascript控制台说什么?只是想帮忙:)
    • 它不会产生焦点部分。我不知道 javascript 控制台。
    猜你喜欢
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 2010-12-26
    • 2015-11-18
    • 2013-01-28
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多