1

オンデマンドで選択リスト/ドロップを設定していますが、何らかの理由でリストが MouseUp で消えます。

リストに入力するコード:

<select id="UserList" name="UserList" onclick="getCountries()">.....</select> 
.
.
.
        function getCountries() {
        $.post("/Users/GetUsersJson/", { id: userId },
        function (result) {

            $.each(result, function (item) {
                $("#UserList").append(
                $("<option></option>").text(result[item].UserName).val(result[item].Id)
                );
            });

        }, "json");
    }

リストをクリックすると、問題なく入力されますが、マウスボタンを離すと、リスト上の何も選択せずに閉じます。何が起こっているのかわかりません。

手がかりはありますか?

4

2 に答える 2

1

ドロップダウンリストが消える原因となるものが何も見当たらないので、どの行が問題を引き起こしているかを正確に判断できるように、いくつかのアラートボックスを配置することをお勧めします。そうは言っても、これはjqueryの各メソッドで可能であることに注意する必要があります。

function getCountries() {
    $.post("/Users/GetUsersJson/", { id: userId },
    function (result) {

        $.each(result, function (index, item) {
            $("#UserList").append(
            $("<option></option>").text(item.UserName).val(item.Id)
            );
        });

    }, "json");
}

コードを少し読みやすくします。

于 2012-04-23T20:19:17.013 に答える
0

HTML:

<select id="UserList" name="UserList"></select> 

jQuery:

$(document).ready(function(e){

    $('#UserList').click(function(e){
        if($(this).children().length == 0){
            $.post("/Users/GetUsersJson/", { id: userId },
            function (result) {

                $.each(result, function (item) {
                    $("#UserList").append("<option val='"+result[item].Id+"'>"+result[item].UserName+"</option>");
                });

            }, "json");
        }
    });
});

上記を試してください:

ポップアップが消える理由は、ドロップダウンをクリックすると、JSON データに対して別の GET リクエストが行われ、SELECT が再設定されるためです。内側にタグchildren()がないことを確認するために、長さのチェックを追加しました。<option>

于 2013-02-27T16:58:14.533 に答える