2

我是新开发的 Rails 应用程序和 Coffescript

我有这个 CoffeScript 代码来使用带有 get 方法和 json 的 ajax 获取一些数据:

jQuery ->
  $("#detalleliquidacion_nit").change ->
    campo1 = document.getElementById("detalleliquidacion_nit")
    document.getElementById("detalleliquidacion_proveedor_id").value = ""
    document.getElementById("detalleliquidacion_nombreproveedor").value = ""
    jQuery.getJSON "/proveedores/obtenerdatos/" + campo1.value, (data) ->
      $("#detalleliquidacion_nombreproveedor").val data[0].nombreproveedor 
      $("#detalleliquidacion_proveedor_id").val data[0].id

    false

我想知道ajax是否为空。

我尝试在“假”句子之后添加此代码:

campo2 = document.getElementById("detalleliquidacion_proveedor_id").value
alert campo2  if campo2 is ""

但总是返回true,因为表单中的输入字段,而这一点,仍然是空的。

我的环境是:rails 3.2.6;红宝石 1.9.3p194

我怎么知道ajax返回是否为空?

一些建议将不胜感激。

问候。

4

1 回答 1

0

我不确定我是否正确理解了您的问题,但您似乎想知道返回的 JSON 值是否为 false 或想查看其中的内容。

尝试这样的事情

jQuery ->
    jQuery("#detalleliquidacion_nit").change ->
        jQuery('#detalleliquidacion_proveedor_id').val('')
        jQuery('#detalleliquidacion_nombreproveedor').val('')

        jQuery.ajax
            url: "/proveedores/obtenerdatos/" + jQuery('#detalleliquidacion_nit').val()
            success: (data) ->
                if data.length == 0
                    alert 'empty reply from server!'
                try
                    obj = jQuery.parseJSON data
                    console.log obj #useful if you are in chrome, safari, or have firebug
                    if obj[0]?
                        jQuery("#detalleliquidacion_nombreproveedor").val( obj[0].nombreproveedor ) if obj[0].nombreproveedor?
                        jQuery('#detalleliquidacion_proveedor_id').val( obj[0].id ) if obj[0].id?
                catch err
                    alert 'Error parsing: ' + data

        false

usingjQuery.ajax允许您比便捷方法更精细地控制返回的数据jQuery.getJSON

console.log将输出到开发控制台并可以帮助您调试。您还可以使用 Chrome 和 Safari 中更高级的 javascript 调试功能来设置断点并在运行时查看变量的值

于 2012-07-23T18:09:52.783 回答