2016-11-29 5 views
0

私はいくつかのバリデーションを作成するフォームを持っており、入力から値を取得し、私の場合はjsonファイルでサーバーをチェックする必要があります。値は存在します。返す前に別の通気口にリダイレクト

唯一の問題は、それが存在し、リターン状態に入ってリダイレクトされている場合でも、promiseと何か関係があるかどうかわかりません。

$("#btnclick").click(function() { 
    $.getJSON("locations.json", function(json) { 
     var locations = _.filter(json, function(o) { 
      return o.value == $originLocation; 
     }); 

     if (locations.length <=0) { 
      console.log("doesnt exist this location origin"); 
      //stop here 
      return; 
     } else { 
      console.log("Yes it exist");  
     }   
    }); 

    window.location = "some link.php"; 
    // go to another link--> redirect 

}); 

window.locationのは、常にクリック時に呼び出されます:私はあなたのコードを再フォーマットした後にエラーがより明らかになると思う

$("#btnclick").click(function(){ 

    $.getJSON("locations.json", function(json) { 

     var locations = _.filter(json, function(o) { 
      return o.value == $originLocation; 
     }); 

     if(locations.length <=0){ 
      console.log("doesnt exist this location origin"); 

      //stop here 
      return; 
     }else{ 
      console.log("Yes it exist"); 

     } 

    }); 


    window.location = "some link.php"; 

    // go to another link--> redirect 

}); 

答えて

0

私のコードは次のようなものです。応答のための

$("#btnclick").click(function() { 
    $.getJSON("locations.json", function(json) { 
     var locations = _.filter(json, function(o) { 
      return o.value == $originLocation; 
     }); 

     if (locations.length <=0) { 
      console.log("doesnt exist this location origin"); 
      //stop here 
      return Promise.resolve(true); 
     } else { 
      console.log("Yes it exist");  
      return Promise.resolve(true); 
     }   
    }).then(exists) { 
     if (exists) { 
      window.location = "some link.php"; 
     } 
    } 
}); 
+0

おかげではなく、内部のwindow.locationのを入れずに方法がある:私はあなたがここでやろうとしていると思う何を約束チェーン を使用しますか?コードに影響を与える他のコードがあるので – Pedro

+0

更新を参照してください。あなたはいくつかの種類の約束を使用する必要があります。 – Shaun

関連する問題