2011-09-20 121 views
0

我有一个非常简单的形式与一个自动填充小部件。没有提交按钮。我希望表单的行为方式能够在用户从自动填充中选择一条建议时提交表单,但不会另外提交。问题是,只要按下回车键,表单就会自动提交,填写或不填。但是,如果我添加一个隐藏文本输入框,它可以解决问题,并且我只能通过从自动完成中选择一个建议来提交表单(通过此机制提交的内容由一些jQuery处理)。是否有更多'优雅'的方式来关闭提交回报功能?添加一个我实际上并不需要的隐藏文本输入似乎不是一种“正确”的方式来做到这一点,而且可能是一个依赖于浏览器的修复(我正在使用Chrome)。表单自动提交按“输入”

+0

你能给出更多细节的上下文,很容易给出答案吗? – vietean

+0

我很抱歉,但您实际上在上下文中的含义是什么?你想要的代码,我想要什么功能,等等? –

回答

1

“输入时提交”是浏览器特定的实现。所以我不认为我们可以从JS中做任何事来关闭它。


您可能可以通过在jQuery中侦听“keypress”事件来强制解决该问题,但这看起来很重要。


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

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

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

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

+0

prventDefault()技巧完美运行。非常感谢! –