【问题标题】:Setting focus in ASP在 ASP 中设置焦点
【发布时间】:2010-10-05 00:41:31
【问题描述】:

我正在用 ASP 维护一个站点,其中一项任务是将焦点设置在页面上的文本框上。 这是我尝试过的:

<script type="text/javascript">
<!--
document.psForm['password'].focus();
//AND
document.getElementById("password").focus();
-->
</script>

我不认为这会奏效......而且它没有:

<form id="psForm" action="logonpw.asp" method="post" defaultfocus="password">

这不起作用:

<body onload="javascript:docuument.psForm.password.focus();">

这是表格:

<form id="psForm" action="logonpw.asp" method="post">
    <table border="0" cellpadding="5">
  <tr>
    <td>
          Password:
       </td>
    <td>
      <input type="password" name="password" value="<%= password %>" size="50">
        </td>
      </tr>
     </table>
</form>

【问题讨论】:

  • 你的正文加载版本有错别字
  • 重新标记,它是 ASP 的事实是无关紧要的
  • 顺便说一句,您不需要将 JavaScript 包装在 cmets 中: 只有 1997 年之前出生的单一浏览器才会显示您的代码,而不是运行它。

标签: javascript


【解决方案1】:

试试这个: 添加:

id="password" 

到输入标签,然后使用:

document.getElementById("password").focus();

【讨论】:

    【解决方案2】:

    a) 移动

    <script type="text/javascript">
    <!--
    document.psForm['password'].focus();
    //AND
    document.getElementById("password").focus();
    -->
    </script>
    

    到页面源代码的底部。

    b) 负载防火规范

    <script type="text/javascript">
    <!--
    function handleOnLoad(){
    document.psForm['password'].focus();
    //AND
    document.getElementById("password").focus();
    }
    -->
    </script>
    ...
    <body onload="handleOnLoad();">
    

    顺便说一句,只有第二个 onfocus 会有用。

    【讨论】:

    • 我仍然需要添加一个 ID="password" 由于 body 标记在包含中,我现在每隔一个页面都有一个错误。也许这将有助于说服项目经理重写这个应用程序。结合 Bravax 的答案,我有一个可行的解决方案。谢谢!
    • 谢谢格雷格。 :) 我应该像你一样详细说明。 nitroxdm 为什么每隔一页都会出错?例如,您可以使用 JQuery 向 onload 事件添加一个 javascript 函数调用,仅针对该一页。因此不会影响其他人。
    • 是的..我错过了。 JQuery 解决方案提到“$(document).ready(function(){ // 你的代码在这里... });”将等待整个 DOM 加载,这可以防止出现问题,但可能会导致触发延迟。
    【解决方案3】:
    <body onload="javascript:docuument.psForm.password.focus();">
    

    应该是

    <body onload="javascript:document.psForm.password.focus();">
    

    检查拼写...

    【讨论】:

    • 感谢您了解这一点,但没有帮助。
    【解决方案4】:
    <body onload="javascript:document.psForm.password.focus();">
    

    文档拼写错误

    【讨论】:

    • 感谢您了解这一点,但没有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 2011-09-09
    相关资源
    最近更新 更多