0

重複の可能性:
ajax呼び出しの結果が来た後に関数の値を返す方法は?

コントローラー内のアイテムの数量をカウントするために使用する関数が1つあります。

function GetQtyItem() {
  var qty;
  var urlQuantity = "Quotation/CountQuantity";
  $.getJSON(urlQuantity, function (quantity) {
      qty = quantity.ja;
  });
  alert(qty); //3
  return qty;
}

ファイル名を正しい部分に含め、この関数をasp.netmvcプロジェクトの別のビューで呼び出しました。

<script language="javascript" type="text/javascript">
  var i = GetQtyItem();
  alert(i);
</script>

ただし、アラートダイアログの結果はですUndefined

誰か教えてもらえますか、正しい値でアラートを出すにはどうすればよいですか(3)。よろしくお願いします。

4

1 に答える 1

1

$.getJSONはAJAXリクエストです...時間がかかります。データが返されるのを待ってから、結果を警告する必要があります。

これを試して:

var qty, i;
function GetQtyItem() {
  var urlQuantity = "Quotation/CountQuantity";
  return $.getJSON(urlQuantity, function (quantity) {
      qty = quantity.ja;
      alert('Request is done');
  });
}

i = GetQtyItem();
i.done(function() {
  alert("Quantity is " + qty);
});
于 2012-09-28T04:09:55.970 に答える