javascript - 一些 jquery 代码不工作而其他的工作正常

标签 javascript jquery ajax

我正在尝试将一个函数绑定(bind)到一个点击事件。一切正常,但函数的某些行没有执行,而其他行完全按照我的意愿工作。

$("#search").click(function(event){
    event.preventDefault();
    $("#search").prop("disabled", true); //not working
    $('#search-help').show(); //not working
    $('#search-help').text("Please wait while we are processing your request");//not working
    update_access_from_refresh(); //working fine
    ...
    do_search_ajax();
    // this function works just fine.
    ...
    $("#asin").removeClass("is-invalid"); //working
    $("#keywords").removeClass("is-invalid"); //working
    $("#search").prop("disabled", false); //I don't know its working
    $('#search-help').hide(); // I don't know its working
});

我在这里评论了不起作用的代码行。

不起作用的代码行,如果我从 chrome 控制台运行它,它就可以正常工作。但是从功能上来说,是不行的。

这是相关的 HTML 代码。我认为这不是 HTML 的问题。因为当我从控制台运行代码时,它工作正常。但不是从功能开始工作。

<form class="search-form">
              <div class="form-row">
                <div class="form-group col-md-3">
                    <button type="submit" id="search" class="btn btn-block btn-secondary mb-2">Search</button>
                </div>
                   ...
                <div class="mr-auto ml-auto">
                    <span  class="text-info" id="search-help" style="display: none;"></span> 
                </div>
              ...
          </form>

部分代码是从 html 中截取的。

我查看了页面源代码,代码也是最新的。

提前致谢

最佳答案

你应该在调用 ajax 之后执行操作

function do_search_ajax () {
  return fetch('https://jsonplaceholder.typicode.com/todos/1')
    .then(response => response.json())
}
$("#search").click(function(event) {
  event.preventDefault();
  $("#search").attr("disabled", true); // working
  $('#search-help').show(); //not working
  $('#search-help').text("Please wait while we are processing your request"); //not working

  do_search_ajax().then(json => {
      console.log(json)
      $("#asin").removeClass("is-invalid"); //working
      $("#keywords").removeClass("is-invalid"); //working
      $("#search").prop("disabled", false); //I don't know its working
      $('#search-help').hide(); // I don't know its working
    })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<form class="search-form">
  <div class="form-row">
    <div class="form-group col-md-3">
      <button id="search" class="btn btn-block btn-secondary mb-2">Search</button>
    </div>
    ...
    <div class="mr-auto ml-auto">
      <span class="text-info" id="search-help" style="display: none;"></span>
    </div>
    ...
</form>

关于javascript - 一些 jquery 代码不工作而其他的工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58264044/

相关文章:

java - 适用于 Android 的 Phonegap jabber 插件

javascript - 使用 jQuery 从 "sibbling"中查找和提取数据

jquery - url 会自动在前面添加符号 ?当使用 $.ajax 时

javascript - 使用另一个网页中的按钮更改一个网页中的 div

javascript - 为什么我的递归函数没有正确循环我的 JSON?

javascript - 当我刷新试剂页面时,Firebase 数据不可用,因此出现异常

jQuery - 在提交时向表单添加隐藏输入

javascript - 在触摸屏上滚动会显着减慢 Chrome 上的 AJAX 下载时间

javascript - JS - 带图像的单选按钮

javascript - JS : Callback function is not executing