AJAX调用后无法在javascript中禁用按钮

时间:2017-11-02 19:46:15

标签: javascript jquery ajax

我有以下js文件,我想在AJAX调用后禁用一个按钮:

$('document').ready(function() {
  const runField = $('input[id=run]')
  const runButton = $('.btn-run')
  const saveButton = $('.btn-save')

  runButton.on('click', function(event) {
    console.log('run clicked')
    runField.val(1)
    event.preventDefault()
    $('.btn-run').prop('disabled', true)
    console.log($('.btn-run').prop('disabled'))
    runCode()
    $('.btn-run').prop('disabled', false)
  })
})

runCode()是我的AJAX函数,但是当我使用.prop('disabled', true)时,仍然没有禁用该按钮,即使以下记录的行在我的控制台中返回true。我确保像ID这样的所有属性都是正确的。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

您需要为$('.btn-run').prop('disabled', false)使用承诺或回调函数 - 如果可能,分享您的runCode会有所帮助。

你的AJAX回调应该如下所示。 URL将有所不同,但$('.btn-run').prop('disabled', false)正在成功运行。这应该意味着它会生效。

$.ajax({
    url: "demo_test.txt", 
    success: function(result){
        $('.btn-run').prop('disabled', false)
    }
});