0

ボタンをクリックして 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");
}
4

1 に答える 1

0

データで何が起こるかは、前のデータに追加されます。再度入力する前に、完了した関数の最初の部分として、選択メニューの内容を「リセット」またはクリアする必要があります

.done(function (data) {
$("#lstItems").html('');

....
于 2013-08-06T02:26:35.293 に答える