0

我正在研究backbone.js。实际上我在 html5 中开发了一些表单。
请看下面的代码

<form>
<label for="name">Name:</label>
<input type="text" id="nickname"  required />
<label for="name">email:</label>
<input type="text" id="email"  required />
<button id="login" class="submit" type="submit">submit</button>
</form>

和 onclick 提交按钮我正在路由到其他视图,但我的 html5 验证在此不起作用。它只是跳过 html5 表单验证请参见下面的主干代码:

events:{      
    "click .submit":"submit",

},
submit: function( event )
{       
    app.navigate('abc', true);      
    window.history.back();
    }

到目前为止,当添加$Backbone.Validation.bind(this);提交功能时,html5 验证正在工作,但路由到另一个视图不起作用。实际上,我不想在主干中创建模型并提供验证模型。我只想使用 html5 验证。你能帮帮我吗?

有人可以告诉我app.navigatesubmit骨干上工作吗?

4

3 回答 3

1

他们按照他们应该的方式工作。您必须听提交事件而不是点击。

events : {      
  'submit' : 'submit'
}

http://jsfiddle.net/vpetrychuk/csr8S/

于 2013-08-21T18:15:01.887 回答
0

您可以在没有 preventDefault 的情况下调用 click 事件:

  events: {
    "click input[type='submit']": "save_all" 
  },

  save_all: function(event){
    if(!$("div.panel-instance-form form")[0].checkValidity()){
      return true;
    }else{
      event.preventDefault();
          this.form_to_model();
          this.model.save();   
          ... 
          return true;
        }
  },
于 2013-10-08T11:25:38.140 回答
0

似乎主干忽略了 html5 响应,但对我来说看起来是正确的,因为您没有发现任何错误,而是直接通过路由。

于 2013-08-21T13:41:47.803 回答