为什么我不能提交此表格?

时间:2018-05-24 22:14:43

标签: html forms google-chrome

有人可以解释为什么在输入中按location ~ /animals { include fastcgi_params; fastcgi_param SCRIPT_FILENAME thePhalconMicroScript.php; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; } 键时永远不会触发submit事件吗?



enter




点击提交按钮效果很好。 如果我删除了禁用按钮,则效果很好。

测试下:
- Chrome版本66.0.3359.181(Build officiel)(64位)
- Chrome版本68.0.3439.0(Build officiel)金丝雀(64位)

第一个按钮被禁用,但第二个按钮没有<form> <input type="text" placeholder="press enter here"/> <button disabled>disabled</button> <button type="submit">submit</button> </form>

这是一个已知问题吗?谢谢,

2 个答案:

答案 0 :(得分:1)

尝试设置第一个按钮以键入=&#34;按钮&#34;

<form>
    <input type="text" placeholder="press enter here" />
    <button type="button" disabled>disabled</button>
    <button type="submit">submit</button>
</form>

如果您不打算使用第一个按钮提交表单,则不需要将其声明为提交按钮。如果您没有声明,表单可能会认为它应该是提交表单的按钮。 (因为它是浏览器在解析 表单时看到的第一个按钮)

答案 1 :(得分:1)

此行为是设计使然。 HTML5标准的相关部分是§4.10.21.2 "Implicit submission"

  

form元素的默认按钮是树顺序中的第一个提交按钮,其表单所有者是该表单元素。

     

如果用户代理支持让用户隐式提交表单(例如,在某些平台上按下“enter”键,而文本控件被聚焦则隐式提交表单),然后对表单执行此操作,其默认按钮具有激活行为且未禁用,必须使用户代理在该默认按钮上触发click事件。

表单中的第一个提交按钮始终被视为默认按钮,即使它已被禁用。禁用它会阻止它被用于提交表单。