使用Backbone.js,我有一个表格如下:
<form id="searchBar">
<input type="search" name="search" id="searchBox" value=""/>
<input type="text" name="location" id="location" value="City, ST"/>
</form>
并且,处理所述表格的观点如下:
window.FindPlaceView = Backbone.View.extend({
/*code here*/
events: {
"submit form#searchBar" : "processClick"
},
processClick: function(e) {
e.preventDefault();
console.log("Submitted");
/*form processing code here*/
}
});
如果我删除表单中的第二个输入字段,表单将在提交时提交就好了。一旦我将第二个输入添加回表单,就没有骰子。绑定似乎在那时失去了。
有没有理由为什么在表单中有两个字段会在提交事件绑定上抛出一个循环?这看起来像是一个愚蠢的问题,我正撞在墙上。
我尝试将输入设置为不同类型,从中删除所有属性,一切。即使我在这里放置一个空的<input></input>
,它也会中断。
(我应该注意,我这里没有提交按钮,只是尝试提交输入)
想法?
感谢。
答案 0 :(得分:8)
您的问题与backbone.js无关,但浏览器的工作原理如何:
从Jquery提交方法documentation:
根据浏览器的不同,Enter键可能只会导致表单 提交,如果表单只有一个文本字段,或仅在那里 是一个提交按钮。界面不应该依赖于 此密钥的特定行为,除非强制该问题 观察按下Enter键的按键事件。
当然有关于它的问题:
在这里,您可以找到一些解决方法,如何在没有提交按钮的情况下在Enter上提交表单: