2

私は初心者の開発者Railsアプリケーションであり、Coffescriptです

getメソッドとjsonでajaxを使用してデータを取得するためのこのCoffeScriptコードがあります。

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を返します。

私の環境は次のとおりです。rails3.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

を使用jQuery.ajaxすると、便利な方法よりも、返されるデータをよりきめ細かく制御できます。jQuery.getJSON

console.log開発コンソールに出力され、デバッグに役立ちます。ChromeとSafariのより高度なJavaScriptデバッグ機能を使用して、ブレークポイントを設定し、実行時に変数の値を確認することもできます

于 2012-07-23T18:09:52.783 に答える