按“输入”后自动提交表单

时间:2011-09-20 01:24:58

标签: forms

我有一个非常简单的表单,其中包含一个自动完成小部件。没有提交按钮。我希望表单以这样一种方式行事,即当用户从自动完成中选择建议时它会提交表单,但不提交。问题是,每当我按下回车键时,表单会自动提交,填写或不填写。但是,如果我添加一个隐藏文本输入框,它解决了问题,我只能通过从自动完成中选择一个建议来提交表单(通过这种机制提交由一些jQuery处理)。是否有一种更“优雅”的方式来关闭提交 - 返回功能?添加一个我实际上并不需要的隐藏文本输入似乎不是“正确”的方法,并且可能是依赖于浏览器的修复(我正在使用Chrome)。

1 个答案:

答案 0 :(得分:1)

“在输入时提交”是特定于浏览器的实现。所以我认为JS无法做任何事情来关闭它。


您可以通过在jQuery中收听“keypress”事件来强制解决问题,但这似乎很重要。


你可能采用的另一种方法(理论上,从未这样做)是使用HTML5数据属性。即在您的表格上,

<form data-ready="false">
</form>

然后在选择建议项目时将该属性设置为“true”。

在表单提交处理程序中,在决定允许表单提交之前检查该属性,或使用.preventDefault()阻止它提交到服务器。

相关问题