Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript焦点()有问题_Javascript - Fatal编程技术网

Javascript焦点()有问题

Javascript焦点()有问题,javascript,Javascript,有3个程序,Pers1,Pers2,Pers3。Pers1和Pers2需要填写表格,Pers3生成报告。Pers2包括Pers1,Pers3包括Pers2。因此,如果你得到一份报告,Pers1和Pers2仍然显示,如果你不喜欢你得到的报告,你可以调整你的表格。所有这些都是用ColdFusion编写的 在所有3个程序中都有Javascript来引导焦点,并且工作正常 在Pers3中,可以单击报告标题并隐藏Pers1和Pers2表单。这允许用户在不使用上述表单的情况下打印报告。要再次显示Pers1和

有3个程序,Pers1,Pers2,Pers3。Pers1和Pers2需要填写表格,Pers3生成报告。Pers2包括Pers1,Pers3包括Pers2。因此,如果你得到一份报告,Pers1和Pers2仍然显示,如果你不喜欢你得到的报告,你可以调整你的表格。所有这些都是用ColdFusion编写的

在所有3个程序中都有Javascript来引导焦点,并且工作正常

在Pers3中,可以单击报告标题并隐藏Pers1和Pers2表单。这允许用户在不使用上述表单的情况下打印报告。要再次显示Pers1和Pers2,请再次单击Pers3中的标题

一切都很好,只是当我点击标题返回Pers1和Pers2时,我在Pers3中失去了焦点。我试过很多东西,但到目前为止都没有成功。打开和关闭Pers1和Pers2的Javascript,包括我重新聚焦的尝试(这里有3个div必须关闭/打开):

重新聚焦,这在其他任何地方都很有效:

  function thefocus(id) {   
  document.getElementById(id).focus();
  }

是否有人知道我可能做错了什么,或者如何让它工作?

如果您给HTML设置了一个
tabindex
属性,您可以关注非输入元素,如下所示:

<h1 tabindex="0" id="reportHead">Report Header</h1>

你能发布你的标记吗?代码的相关区域会有所帮助。只是去掉它的名称:
reporthead
是一种不可编辑的元素,比如header标签吗?“聚焦”只会在算作输入字段的东西上运行良好。我不知道——我将构建一个输入字段。我构建了一个空的、不可见的输入字段,这很好,只是其中有一个光标在闪烁。我使用type=“button”成功地摆脱了光标,但它在按钮的中间加了一条黑色虚线。还有什么建议吗?我想我已经去掉了黑色虚线的轮廓,但下面的解决方案要好一点,因为即使我将背景色设置为白色,按钮本身也是可见的。谢谢你的帮助。谢谢,我将尝试一下。好吧,它成功了,但没有成功。也就是说,它确实重新聚焦于我。但它也在我关注的元素周围画了一条黑色虚线。你知道如何摆脱它吗?嘿,我刚找到一个提纲:没有,这样就摆脱了它。现在一切都好了;非常感谢您的帮助。如果您不希望用户能够对元素进行
tab
,但仍然希望以编程方式对其进行tab,则可以将
tabindex
的值设置为-1。您知道,我不知道tabindex是做什么的,当我查找它时,我得到了有关tab的详细信息,但我不知道这是什么。如果你能解释一下,那会很有帮助的。
<h1 tabindex="0" id="reportHead">Report Header</h1>
document.getElementById('reportHead').focus();