在Safari中单击按钮后输入字段会获得焦点,但在Chrome中则不会

问题描述 投票:0回答:1

我在Chrome和Safari之间遇到了这种奇怪的行为差异。如果标签中有输入和按钮,单击该按钮将使输入在Safari中获得焦点,但在Chrome中则不会。

我发现将e.preventDefault()添加到按钮点击处理程序会使Safari的行为与Chrome相同。

这是最小的代码示例:

<label>
  <input />
  <button>add</button>
</label>

这是Chrome / Safari中的错误还是一些记录在案的“功能”?这个HTML应该表现的“正确”方式是什么?

html google-chrome safari
1个回答
1
投票

不知道为什么你的按钮位于标签内。输入和按钮都是可操作的(可以在其上执行某些操作)元素。默认情况下,可操作元素在浏览器中获得焦点所以,你应该将两个元素分开。标签可能被包裹或无法用输入包裹,请参阅“Is it better to wrap the label tag around a form item or use the "for" attribute in HTML?了解详情。

<body>

  <label>
  <input />
</label>
  <button>add</button>
</body>
© www.soinside.com 2019 - 2024. All rights reserved.