[英]return value of a model.save on BackboneJS
我在Backbone視圖上有功能:
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;
}
}
我想觸發這個vent.trigger('navigate', 'home');
當驗證是正確的,但它不起作用,任何想法? 我做錯了什么?
我認為你在骨干validate
如何工作的假設中有一個非常常見的錯誤。 如果驗證函數返回任何內容,則表示存在錯誤。 所以...首先,你是落后的。 當驗證失敗時,您將返回false,並且您應該返回一條消息,說明它失敗的原因。 此外,當您validate:true
,這不是您傳遞的選項,您實際上是在名為validate的模型上設置屬性。 選項作為第二個對象傳遞。
仔細閱讀這些文檔: http : //backbonejs.org/#Model-validate
嘗試做這樣的事情。 抱歉沒有更多信息,這是我能幫到的最好的。 干杯。
視圖:
onRender: function() {
this.ui.form.on('submit', function() {
mylogin = new login();
mylogin.save({
boxid:$("#boxid").val(),
password:$("#passwordid").val()
});
if(!myLogin.validationError) {
vent.trigger('navigate', 'home');
}
return false;
});
}
模型:
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";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.