我对此感到愚蠢,但按Enter键时提交表单并不是正常的网页浏览器行为吗?这可能有什么问题?我已经检查过,通过js禁用测试,它不是任何javascript干扰。它在IE中工作。我希望将提交按钮设为<button>
而不是<input>
,但我认为输入会有更好的工作机会。
<form role="search" method="get" class="search-form form-inline" action="http://local.sos/">
<div class="input-group">
<span class="input-group-btn">
<button class="btn" disabled=""><i class="icon-search"></i></button>
</span>
<input type="search" value="" name="s" class="search-field form-control" placeholder="Search">
<span class="input-group-btn">
<input type="submit" class="search-submit btn"><i class="icon-arrowright"></i> </input>
</span>
</div>
</form>
答案 0 :(得分:6)
您依赖于非显而易见的行为,即在表单上的文本字段中按“输入”会自动提交表单,但前提是表单中只有一个文本字段。我遇到了类似的问题,只是没有尝试使用disabled
属性......
如果表单中只有一个单行文本输入字段,则用户代理应接受该字段中的Enter作为提交表单的请求。
An old, but apparently still valid, and interesting, further discussion here
...显然是一种提交简单查询的便捷方式,但是在复杂的形式上降低了在尝试填写时过早提交的风险。许多浏览器实现者(例如Netscape,Opera,各种版本的Lynx,......)遵循了这个建议,虽然看起来略有不同。
但是,如果不只是单个文本字段,您可能需要某种提交按钮,即使您不希望在表单上看到它并使用CSS来隐藏它 - ({{ 1}} - 它应该仍然可以工作。(当然这完全取决于浏览器决定如何实现,但它似乎是我能说的标准。)
我做了a JSFiddle to demonstrate。据我所知(懒惰只是用Chrome测试),如果只有一个文本字段,或者如果有提交按钮,表单将在“Enter”上提交,即使它是隐藏的。
display: none, etc)
答案 1 :(得分:0)
它似乎是&#34;禁用&#34;的问题。在Chrome和Firefox中,按钮/提交类型输入字段具有&#34;禁用&#34;在形式下&lt;元素不允许通过按下提交表单&#34;输入&#34;密钥但在IE中它允许提交表单。
以下所有浏览器验证的代码:
<form action="http://google.co.in">
<input type="text" name="s" />
<input type="submit" disabled=""/>
</form>
答案 2 :(得分:0)
如果没有type='button'
属性,它将用作提交,因此您在html中有两个提交按钮。如果按Enter键,它将使用第一个提交,如果禁用,则无法使用。
因此,您可以将type='button'
添加到。