bugfix> javascript > 投稿

validate()関数をコールバックするためにsetintervalとsettimeoutを試しましたが、なぜ機能しないのかわかりません。今、私は別のタイプの呼び出しメソッドを試しても、まだ動作しません。修正しますか?

以下にコードを示します。

  function validate(){
    var code = document.getElementById("BScode").value ;
    var msg = "<p>ERROR : Please select the option. </p>";
    var error = document.getElementById("valError");
    error.innerHTML = ""; //clear error-span
    document.getElementById("divResult").innerHTML = ""; //clear resutl-div
  **  document.getElementById("map_title").innerHTML = "";
    document.getElementById("map_canvas").style.display  = "none"; **
    if( code == "" || code == "none" || code == null ){
        error.innerHTML = msg;
    }else{
    //get result
        getETA();
        auto_refresh_countdown(seconds);
    }
  }
  /* The whole stupid function to call back refresh validate() which failed :)*/
  function auto_refresh_countdown(seconds) {
            var time = seconds;
            var myTimer = setInterval(function() {
                time--;
                if(time === 0){
                    clearInterval(myTimer);
                    validate();
                    auto_refresh_countdown(seconds);
                }
            }, 1000);
        } 
function getETA() {
    var seconds = 5;
    var id = document.getElementById("BScode").value;
    var url = "http://www.cybertowers.net/jsonp/?a=eta.aspx?bid=";
    loadData(url, getETACallback);//real
}

回答 1 件
  • 最後の行には、関数 getETACallback があります  定義されていません。 私はちょうど auto_refresh_countdown を実行しようとしました 、 できます。 validate   seconds の場合にのみ呼び出されます   1 とは異なります  しかし。 さらに、タイプミスがあります: uto_refresh_countdown  ->  auto_refresh_countdown

あなたの答え