2

ノックアウトjsでjqueryオートコンプリートを使用しています。キーボードとマウスクリックのイベントで正常に動作します。しかし、私の問題は、存在しない名前を入力すると、その名前がページに表示されることです(abservable変数に保存されます)。

ここに私のJavaScriptコードがあります:

 //For autocomplete extender generating members
$(function () {
    $('.tags').autocomplete({

        //make ajax call to get all mentored member of logged member
        source: function (request, response) {
            $.ajax({
                url: "Members.aspx/GetAllMembers",
                data: "{ 'prefixText': '" + request.term + "' }",
                dataType: "json",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    response(data.d);
                    self.memberOptions(data.d);
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert('error occured while autocomplete');
                }
            });
        },
        minlength: 0,
        select: function (event, ui) {
            //get selected member name
            self.selectedMember(ui.item.actualValue ? ui.item.actualValue : ui.item.value ? ui.item.value : "");
            self.LoadAddress(self.choosenDateId(), self.selectedMember());
        }
    });
});

私の必要性は、無効な名前を入力すると、ページにloggeduser(セッションに存在)のアドレスが表示されることです。つまり、self.selectedMember(userName) です。

4

2 に答える 2

1

select イベントの後に以下のブロックを追加しましたが、動作します。

change: function (event, ui) {
            if (!ui.item) {
                //if invalid name selected, load goals of logged user
                self.selectedMember(userName)
                self.LoadAddress(self.choosenDateId(), self.selectedMember());
            }
        },
于 2012-11-23T06:07:49.040 に答える
0

ネイティブの jQuery コードとノックアウトを混在させています。そうしないでください。KO の要点は、モデルとビューの間の依存関係を取り除くことです。代わりにオートコンプリート バインディングを使用する

オートコンプリート コンボボックスを作成するには?

于 2012-11-22T10:25:03.507 に答える