gpt4 book ai didi

javascript - Backbone js按钮单击事件未触发

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:33 26 4
gpt4 key购买 nike

我在主路由器的初始化上有一个 ajax 函数,它似乎阻碍了我在 signin.js 中登录按钮的事件。当我单击登录按钮时,它没有执行其功能,而是浏览器将输入放在 URL 上(即用户名和密码)。但是当我在初始化时删除 ajax 函数时,我可以成功登录。

我已经包含了一些我正在处理的代码。谢谢

主要.js

initialize: function(){
$.ajax({
type: "GET",
url: "something here",
contentType: "application/json",
headers: {
'someVar': something here
},
statusCode: {
404: function() {
console.log('404: logged out');
if (!this.loginView) {
this.loginView = new LoginView();
}
$('.pagewrap').html(this.loginView.el);
},
200: function() {
console.log('200');
if (!this.homeView) {
this.homeView = new HomeView();
}
$('.pagewrap').html(this.homeView.el);
}
}
});
// return false;
},

登录.js

var SigninView = Backbone.View.extend ({
el: '#signin-container',
events: {
"click #btn-signin" : "submit"
},
submit: function () {
console.log('signin');
$.ajax({ ... });
return false;
}
});
var toSignin = new SigninView();
window.anotherSigninView = Backbone.View.extend({
initialize: function() {},
render: function() {}
});

首页.js

window.HomeView = Backbone.View.extend ({
initialize: function() {
this.render();
},
render: function() {
$(this.el).html( this.template() );
return this;
}
});

一些html

<form id="signin-container">
<table id="tbl-signin">
<tr>
<td><div class="input-box"><input class="input-text" type="text" name="username" placeholder="Username"></div></td>
<td><div class="input-box"><input class="input-text" type="password" name="password" placeholder="Password"></div></td>
<td><input id="btn-signin" class="button" value="Sign In"></td>
</tr>
<tr>
<td class="opt"><input class="checkbox" type="checkbox" name="rememberMe" value="true"><label class="opt-signin">Remember Me?</label></td>
<td class="opt"><a class="opt-signin" href="#">Forgot Password?</a></td>
<td></td>
</tr>
</table>
</form>

最佳答案

您需要在 click 处理程序中阻止 submit 按钮的默认行为。你可以这样做:

var SigninView = Backbone.View.extend ({
el: '#signin-container',
events: {
"click #btn-signin" : "submit"
},
submit: function (event) {
event.preventDefault();
console.log('signin');
$.ajax({ ... });
}
});

或者,您可以考虑使用 html button 元素,它不会尝试提交与其关联的表单。

关于javascript - Backbone js按钮单击事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21378092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com