我是 Rails 应用程序和 Coffescript 的新开发人员
我有这个 CoffeScript 代码,可以使用 ajax 和 get 方法和 json 来获取一些数据:
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是否为空。
我尝试在“false”句子后面添加此代码:
campo2 = document.getElementById("detalleliquidacion_proveedor_id").value
alert campo2 if campo2 is ""
但是总是返回true,因为表单中的输入字段,此时,仍然是空的。
我的环境是:rails 3.2.6; ruby 1.9.3p194
如何知道ajax返回是否为空?
一些建议将不胜感激。
问候。
最佳答案
我不确定我是否正确理解了您的问题,但看起来您想知道返回的 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.getJSON
相比,使用 jQuery.ajax
可以让您更精细地控制返回的数据
console.log
将输出到 Development Console并可以帮助您调试。您还可以使用 Chrome 和 Safari 中更高级的 javascript 调试功能来设置断点并在运行时查看变量的值
关于json - 在rails中使用CoffeScript检索json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11597114/