ボタンをクリックして MVC4/WebAPI アプリケーションからデータをフェッチするときに、次の関数が正しく機能しないようです。問題は、この関数を呼び出すボタンをクリックすると、最初の呼び出しで機能し、データがフェッチされ、コントロールに適切なデータが入力されることです。
しかし、もう一度ボタンをクリックすると、選択要素 (#lstItems) は、返されたレコードで選択された項目ではなく、最初のオプションに戻ります。selectmenu('refresh') を振りかけるとうまくいくと思いましたが、役に立ちませんでした。
function getPOById() {
$.ajax({
type: "GET",
url: webroot + "api/items?POId=" + $("#txtPOId").val(),
}).done(function (data) {
$("#txtSupplierName").val(data.SupplierName);
$("#txtQuantity").val(data.Quantity);
$("#txtUnitPrice").val(data.UnitPrice);
$('#lstItems option').each(function () {
$(this).removeAttr('selected');
$("#lstItems").selectmenu("refresh");
if ($(this).attr('value') == data.ItemId) {
$(this).attr('selected', 'selected');
}
$("#lstItems").selectmenu("refresh");
});
}).fail(function (err) {
alert("Error " + err.status + "Code " + err.statusCode);
});
$("#lstItems").selectmenu("refresh");
}