1

我在屏幕上有 2 个页面(实际上更多,因为它是一种带有几帧的专有 Web 应用程序,我实际上无法弄清楚整个结构)

我在页面中输入搜索条件,按键盘上的“Enter”,执行搜索,另一个视图填充数据。在第二个视图上有一个“确认”按钮,用户必须单击它。

我希望用户按键盘上的“Enter”并执行“确认”。

如果我单击第二个视图上的一个字段并按“Enter”,则会执行“确认”,因此只需将鼠标的焦点从第一页移动到另一页。

我怎样才能以编程方式实现这一目标?

我试过以下

<SCRIPT FOR=window event=onload language="JScript">
    var focusField = "<%= controller->component_id %>" + '_' + 'NUMBER';
    document.getElementById(focusField).focus();
</SCRIPT>

光标仍在第一页的输入字段中。

<SCRIPT FOR=window event=onload language="JScript">
    var focusField = "<%= controller->component_id %>" + '_' + 'NUMBER';
    alert(document.getElementById(focusField).value);
    document.getElementById(focusField).focus();
</SCRIPT>

显示该字段的值,以便代码通过那里

光标仍在第一页的输入字段中

<SCRIPT FOR=window event=onload language="JScript">
    var focusField = "<%= controller->component_id %>" + '_' + 'NUMBER';
    document.getElementById(focusField).focus();
    alert('1');
    alert('2');
</SCRIPT>

光标仍在第一页的输入字段中

<SCRIPT FOR=window event=onload language="JScript">
    var focusField = "<%= controller->component_id %>" + '_' + 'NUMBER';
    alert('1');
    document.getElementById(focusField).focus();
    alert('2');
</SCRIPT>

并且光标以某种方式“奇迹般地”“移出”输入字段并且“Enter”在第二页上起作用!

为什么 ?

当然,这不是一个解决方案,但我想知道为什么使用警报(但 2 不是 1)可以达到我移动鼠标焦点的目的。

谢谢

4

1 回答 1

1

我找到了让它工作的方法

<SCRIPT FOR=window event=onload language="JScript">

function setFocus()
    {
    var focusField = "<%= controller->component_id %>" + '_' + 'CUSTOMER_STRUCT.BP_NUMBER';
    document.getElementById(focusField).focus();
    }

  window.setTimeout('setFocus()', 40);//1,10,20,30 do not work

</SCRIPT>

对此有何解释?

它适用于我的桌面。难道它不能在其他工作站上工作(即间隔必须更高)?

于 2008-11-21T00:29:35.673 回答