使用Backbone点击呼叫服务休息

时间:2014-01-22 15:02:57

标签: javascript rest backbone.js

当我按下登录按钮时,我想打电话给休息服务(帖子)但是它没有启动任何服务只是添加“?”在我申请的网址末尾。

这是我的js:

(function ($) {
var authentication = Backbone.Model.extend({
     defaults: {
            Username: "",
            Password: ""
        },
        url:'../../rest/login'
});



var LoginView = Backbone.View.extend({
    model: new authentication(),
    el: $("#login-form"),
    events: {
        "click button#login": "login"
    },

    login: function(){
        alert("ici");
        this.model.save({username: this.$el.find("#inUser")}, {
        password: this.$el.find("#inPswd")}, {
            success: function() {
                /* update the view now */
            },
            error: function() {
                /* handle the error code here */
            }
        });
    }   

})
})
(jQuery);

这是我的表格:

<form class="form-inline">
<div class="form-group">
<input type="text" class="form-control" placeholder="Username" id="inUser"></input>
<input type="password" class="form-control" placeholder="Password" id="inPswd"></input>
<button id="login">Login</button>
</div>
</form>

1 个答案:

答案 0 :(得分:0)

您的.save()方法调用存在问题,因为您在两个不同的对象中发送了usernamepassword

要停止添加问号?符号(停止提交表单),您需要将event.preventDefault();和/或return false;添加到按钮点击处理程序。

这是一个修复:

login: function(event) {
    event.preventDefault();
    alert("ici");
    this.model.save({
            username: this.$el.find("#inUser"),
            password: this.$el.find("#inPswd")
        }, {
            success: function() {
                /* update the view now */
            },
            error: function() {
                /* handle the error code here */
            }
    });
    return false;
}