0

オートコンプリートを使用して製品の説明を紹介し、JavaScript 関数で ProductID と Price を取得します。

<script type="text/javascript">
  $(document).ready(function () {
    $(function () {
      $("#Description").change(function () {
        $("#ProductID").val(Description_autocomplete_hidden.value);
        $("#Price").load('@Url.Action("GetPrice", "Product")', { id: parseInt($("#ProductID").val()) });
      });
    });
  });
</script>

ProductID は正常に機能し、「\Product\GetPrice\4」などのアクションは正しく呼び出されますが、製品価格を $("#Price") に割り当てることができません。

かみそりのコード:

<div class="row">
  <div class="label">@Html.Label("Product")</div>
  <div class="input">@Html.AutoComplete("Description","","Product","_Shared")</div>
</div>
<div id ="ProductID"></div>
<br />

<div class="row">
  <div class="label">@Html.Label("Price")</div>
  <div class="input">@Html.Editor("Price")</div>
</div>

Product コントローラの GetPrice():

public string GetPrice(int id)
{
  return unitOfWork.ProductRepository.GetByID(id).Pvp1.ToString();
}
4

3 に答える 3

2

@カルロスは正しいです!.load() 関数は、テキスト フィールドでは機能しない内部 HTML を設定しようとします。機能させるには、textBox の値を設定する必要があります。回線を交換するだけ$("#Price").load('@Url.Action("GetPrice", "Product")', { id: parseInt($("#ProductID").val()) }); });

これとともに:

    $.get('@Url.Action("GetPrice", "Product")', { id: parseInt($("#ProductID").val()) },
 function(result) {
        //set the value here    
        $("#Price").val(result);
    });
于 2012-12-18T00:22:08.150 に答える
1
$(document).ready(function () {
    $(function () {
      $("#Description").change(function () {
        $("#ProductID").val(Description_autocomplete_hidden.value);
  $.ajax({
                        url: '@Url.Action("GetPrice", "Product")',
                        data: { id: parseInt($("#ProductID").val()) },
                        dataType: 'text',
                        type: 'get',
                        success: function (data) {
                           $("#Price").val(data); // 
                        }
                    });        
      });
    });
  });

これを試して

于 2012-12-18T03:55:04.917 に答える
1

ここを見て:

http://api.jquery.com/load/

jQuery はブラウザーの .innerHTML プロパティを使用して、取得したドキュメントを解析し、現在のドキュメントに挿入します。

そこに書かれている内容によると、入力の値属性を設定するためにjQueryloadメソッドを使用することはできません。

これを使用してください: http://api.jquery.com/jQuery.ajax/

より多くのオプションを提供します。また、成功のコールバックでは、戻り値を好きな場所で使用できます。この場合、値を入力に割り当てることができます。

$("#Price").val(data);
于 2012-12-17T23:32:22.243 に答える