【问题标题】:Backbone form doesn't submit with more than one input field主干表单不提交多个输入字段
【发布时间】:2012-09-11 20:48:13
【问题描述】:

使用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*/
    }
});

如果我删除表单中的第二个输入字段,表单将在输入时提交就好了。一旦我将第二个输入添加回表单,就没有骰子了。绑定似乎在这一点上丢失了。

有什么理由让表单中有两个字段会在提交事件绑定上引发循环?这似乎是一个愚蠢的问题,我正在用头撞墙。

我尝试将输入设置为不同的类型,去除其中的所有属性,一切。即使我在这里放了一个空的&lt;input&gt;&lt;/input&gt;,它也会坏掉。

(我要注意,我这里没有提交按钮,只是在输入时尝试提交)

想法?

谢谢。

【问题讨论】:

    标签: backbone.js


    【解决方案1】:

    您的问题与backbone.js 无关,而是与浏览器的工作方式有关:

    来自Jquery的提交方法documentation

    根据浏览器的不同,回车键可能只会导致一个表单 如果表单只有一个文本字段,则提交,或仅在有文本字段时提交 是一个提交按钮。接口不应依赖于 此键的特定行为,除非问题是由 观察按下 Enter 键的 keypress 事件。

    当然有这样的问题:

    在这里您可以找到一些解决方法,如何在没有提交按钮的情况下在 Enter 上提交表单:

    【讨论】:

    • 哇,疯了。感谢您对此的见解。不知道行为存在。谢谢!
    猜你喜欢
    • 2014-01-28
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    相关资源
    最近更新 更多