0

我在表单标签内有自动完成的输入控件,如下所示:

 <input type="text" class="tags" data-bind="value: selectedMember(), event: { keypress: $root.DisablePostBack}" />

我为强制选择添加了模糊事件,如下所示:

$(function () {
        $('.tags').autocomplete({
            //make ajax call to get all mentored member of logged member
            source: function (request, response) {
                $.ajax({

                });
            },
            minlength: 0,
            focus: function () {
                // prevent value inserted on focus
                return false;
            },
            select: function (event, ui) {
                self.selectedMember(this.value);
                return false;
            }

        }).blur(
            function () {
                var terms = split(this.value);
                self.selectedMember(terms);
                return false;
            }
                );

当用户输入名称而不是从自动完成中选择成员并按回车键时,将调用模糊事件。我的问题是当我按回车键时,页面再次重新加载。按下回车键时如何防止页面重新加载。

*编辑:*要禁用回车键,我添加了一项功能,如下所示:

self.DisablePostBack = function (e) {
    if (e.which == 13) {
        return false;
    }
};

并在该文本框的按键上调用它。但在那之后按键不起作用。

4

2 回答 2

0

尝试使用类似的东西:

if((e.keyCode == 13) {// do something;
return false;}

e.keyCode == 13将帮助您检查是否按下了 Enter,然后您可以执行一些您的代码,之后您必须返回 false 以防止浏览器发送数据

于 2013-01-02T12:14:29.033 回答
0

我已经用 keypress 事件替换了 blur 事件,并检查是否按下了 enter 键,如下所示:

.keypress(function (e) {
            if (e.which == 13) {
                //write code
            }
        });

现在它无需重新加载页面即可工作。我已经用按键替换了模糊,因为在 chrome 中按下输入键时不会调用模糊。

并感谢大家的有用建议。

于 2013-01-03T07:52:55.687 回答