jquery似乎跳过了一些代码行

时间:2016-10-30 09:15:00

标签: jquery html ajax

我有一个jQuery脚本来从外部源(ajax)获取一些信息,并且在这样做时应该出现一个加载器图像。 JQuery似乎不喜欢它,因为该行未被执行。在执行期间,应禁用输入,但跳过该代码。

我的jQuery代码:

$("#pnum").keyup(function(){
  nieuw = $(this).val();
  code = $('#pnum').val();
  $("#pnum").css("background-color", "#FFC080");
  if (oud != nieuw && option != 0 && code.length >= 1 && code.length <=4 ) {
    $("#loaderImage").show();
    $("input").prop('disabled', true);
    $("#mode").prop('disabled', true);
    $('#pnumTable').empty();
    if (code.length >= 1)  {
      $.ajax({
        url: "http://sistermans.diskstation.me/NetBeans/Postcodes/api-postcode.php",
        dataType: "jsonp",
        jsonpCallback: "postcodeResults",
        data : {mode: option, pnum: code }
      });
    }
    oud = nieuw;
    $("#loaderImage").hide();
    $("input").prop('disabled', false);
  }
  if (code.length < 1 || code.length > 4 ) {
    $("#pnum").css("background-color", "yellow");
  }
});

html中应该弹出加载程序图像和答案的部分:

<div id="loaderImage">
  <p>Haal de gegevens op volgens methode : <br>
  <div id="keuze"></div><p>
  <p><img src="web_images/ajax-loader-hscrew.gif"></p>
</div>
<table>
  <div id="pnumTable">

  </div>
</table>

答案将显示在pnumTable div中。这总是有效的。 <div id="keuze">在其他地方处理。

我可能做错了什么,但我不知道她在哪里。

有人愿意帮助我吗?

1 个答案:

答案 0 :(得分:0)

尝试将隐藏代码放入成功回调中,如下所示......

 if (code.length >= 1)  {
      $.ajax({
        url: "http://sistermans.diskstation.me/NetBeans/Postcodes/api-postcode.php",
        dataType: "jsonp",
        jsonpCallback: "postcodeResults",
        data : {mode: option, pnum: code },
        success: function(){
                oud = nieuw;
                $("#loaderImage").hide();
                $("input").prop('disabled', false);
        }
      });
    }