我使用自动完成功能来介绍产品说明并使用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>
产品控制器中的GetPrice():
public string GetPrice(int id)
{
return unitOfWork.ProductRepository.GetByID(id).Pvp1.ToString();
}
答案 0 :(得分:2)
@Carlos是对的! .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);
});
答案 1 :(得分:1)
看这里:
jQuery使用浏览器的.innerHTML属性来解析检索到的 记录并将其插入当前文档。
根据那里写的内容,jQuery load
方法不能用于设置输入的value属性。
请使用此:http://api.jquery.com/jQuery.ajax/
它会为您提供更多选择。同样在成功回调中,您可以在任何地方使用返回值,在您的情况下为输入值赋值:
$("#Price").val(data);
答案 2 :(得分: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); //
}
});
});
});
});
试试这个