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";
  }
}