使用rails中的CoffeeScript使用json检索数据

时间:2012-07-22 01:21:51

标签: json jquery coffeescript ruby-on-rails-3.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返回是否为空?

一些建议将不胜感激。

问候。

1 个答案:

答案 0 :(得分: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

使用jQuery.ajax可以比简便方法jQuery.getJSON

更精细地控制返回的数据

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