使用标签标签提交表单

Den*_*kov 5 html label click onclick labels

在不使用图像或javascript的情况下很难设置提交输入.

据我所知,没有办法将HTML代码直接插入到sumbit输入值中.如果我将提交输入包装在div元素中(例如添加多个边框),则不是整个区域都是可点击的.

点击标签会导致在所有浏览器中提交表单吗?

<form method="test.rb">
 <input type="text" name="test" id="test" />
 <label for="button">
  <input type="submit" name="button" id="button" value="Send!" />
 </label>
</form>
Run Code Online (Sandbox Code Playgroud)

Ste*_*ins 7

根据关于标签的W3C:

label元素不用于以下内容,因为这些元素的标签是通过value属性(对于Submit和Reset按钮),alt属性(对于图像按钮)或元素内容本身(按钮)提供的.

感谢你@Jeremiah Isaacson指出这一点.


老答案

是的,这会奏效.我无法验证所有浏览器的行为,但这是W3C规范所说的:

要隐式地将标签与另一个控件相关联,控制元素必须位于LABEL元素的内容中......当LABEL元素获得焦点时,它会将焦点传递给其关联的控件.

所以,我想通过单击LABEL,您基本上是单击提交输入.

感谢@stevelove指出了这个的可行性.


ste*_*ove 4

如果问题在于将 HTML 代码放入按钮中,您应该使用<button>它来做到这一点。

<button type="submit" name="button" id="button"><img src="button.png" />Send!</button>

但要回答你的问题<label>不,那是行不通的。显然它会起作用,经过一番思考后,我认为没有理由不这样做。