在进行ajax调用后调用方法的问题

时间:2014-01-07 14:35:31

标签: javascript jquery ruby-on-rails ajax

在表单上勾选复选框后,我调用的函数执行某些检查并启用以前禁用的按钮。

我的js代码包含以下内容:

$('#default_address').change ->
    id = $('#default_address').val()
    if(this.checked)
      $.ajax({
        url: '/shipments/' + id + '/get_address',
        dataType: "JSON",
        success: (data) ->
          $('#billing_address_address_line1').val(data[0])
          $('#billing_address_address_line2').val(data[1])
          $('#billing_address_phone_number').val(data[2])
      }).done
      checkPlaceOrderValidity()

checkPlaceOrderValidity()方法如下所示:

@checkPlaceOrderValidity = ->
  // some code
  else
    place_order_btn.attr 'disabled', false
    place_order_btn.removeClass 'disabled'

如果我在调用checkPlaceOrderValidity()方法之前添加一个警报,它工作正常(我觉得很奇怪)。调试代码后,我无法找到原因。

1 个答案:

答案 0 :(得分:2)

试试这个,

$.ajax({
url: '/shipments/' + id + '/get_address',
        dataType: "JSON",
        success: (data) - >
        $('#billing_address_address_line1').val(data[0])
        $('#billing_address_address_line2').val(data[1])
        $('#billing_address_phone_number').val(data[2])
}).done(checkPlaceOrderValidity);