我是新开发者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返回是否为空?
一些建议将不胜感激。
问候。
答案 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调试功能来设置断点并在运行时查看变量值