Javascript BackboneJS上model.save的返回值
我在主干视图上具有以下功能:Javascript BackboneJS上model.save的返回值,javascript,backbone.js,Javascript,Backbone.js,我在主干视图上具有以下功能: onRender: function() { this.ui.form.on('submit', function() { mylogin = new login(); valid = mylogin.save({boxid:$("#boxid").val(),password:$("#passwordid").val(),validate:true}); if(valid != false)
onRender: function() {
this.ui.form.on('submit', function() {
mylogin = new login();
valid = mylogin.save({boxid:$("#boxid").val(),password:$("#passwordid").val(),validate:true});
if(valid != false)
{
vent.trigger('navigate', 'home');
}
return false;
});
模型上的此功能:
validate: function(attrs, options){
if(attrs.boxid.length < 10)
{
return false;
}
else if(attrs.password.length < 10)
{
return false;
}
else
{
if((attrs.boxid!=myBoxid)||(attrs.password!=myPassword))
{
return false;
}
else
{
return true;
}
}
验证:功能(属性、选项){
如果(attrs.boxid.length<10)
{
返回false;
}
否则如果(attrs.password.length<10)
{
返回false;
}
其他的
{
if((attrs.boxid!=myBoxid)| |(attrs.password!=myPassword))
{
返回false;
}
其他的
{
返回true;
}
}
我想触发这个
vent.trigger('navigate','home')当验证是正确的,但它不起作用时,你知道吗?我做错了什么?我认为你在假设主干验证
如何工作时有一个非常常见的错误。如果你的验证函数返回任何东西,那就是一个错误的指示。因此……首先,你在这方面做得很落后。你正在返回验证失败时为false,您应该返回一条消息,说明失败的原因。此外,当您执行验证:true
时,这不是您要传递的选项,实际上是在您的模型上设置名为validate的属性。选项作为第二个对象传递
仔细阅读这些文件:
尝试这样做。抱歉,没有更多信息。这是我能做的最好的帮助。干杯
视图:
型号:
validate: function(attrs, options){
if(attrs.boxid.length < 10) {
return "user id must be more than 10 characters";
}
if(attrs.password.length < 10) {
return "password must be more than 10 characters";
}
if((attrs.boxid!=myBoxid)||(attrs.password!=myPassword)) {
return "Your login credentials are incorrect";
}
}
验证:功能(属性、选项){
如果(attrs.boxid.length<10){
返回“用户id必须超过10个字符”;
}
如果(attrs.password.length<10){
return“密码必须超过10个字符”;
}
if((attrs.boxid!=myBoxid)| |(attrs.password!=myPassword)){
返回“您的登录凭据不正确”;
}
}
是否“valid”返回false?它似乎不起作用,当用户输入正确的凭据时,什么都不会发生,问题是页面重新加载,我无法检查myLogin.validationError
是否包含内容,如果(!myLogin.validationError)
使用!
我可能误解了您想要做的事情。如果这样做有效,我将编辑答案。
validate: function(attrs, options){
if(attrs.boxid.length < 10) {
return "user id must be more than 10 characters";
}
if(attrs.password.length < 10) {
return "password must be more than 10 characters";
}
if((attrs.boxid!=myBoxid)||(attrs.password!=myPassword)) {
return "Your login credentials are incorrect";
}
}