【问题标题】:Auto-submit kendo autocomplete widget on select选择时自动提交剑道自动完成小部件
【发布时间】:2015-07-07 07:04:26
【问题描述】:

我在 angularjs 中使用剑道。当我从autocomplete widget 中选择时,我想直接在我的表单中提交选定的值。当我在表单中写入文本时(即使自动完成没有建议文本)输入应始终提交表单。

代码的一个小例子,没有angularjs:

<form>
    <input id="items"/>
    <button type="submit">Submit</button>
</form>

Javascript:

var names = ["Item 1","Item 2","Item 10","Item 20"];

$("#items").kendoAutoComplete({
    dataSource: names,
    ignoreCase: true
});
var autocompleteFacility = $("#items").data("kendoAutoComplete");

$("form").submit(function(event) {
    alert("Submitted item: "+$("#items").val());
    event.preventDefault();
});

http://jsfiddle.net/f8qhb57u/6/

奖励:我想确定选择是通过键(回车)还是通过鼠标单击完成的。

【问题讨论】:

    标签: angularjs kendo-ui


    【解决方案1】:

    你可以使用change事件

    Demo

    ..
        change: function(e) {
            $("form").submit();
      }
    ..
    

    【讨论】:

    • 感谢您的回答。我之前尝试过,但它不适用于鼠标。填写“Ite”,然后点击“Item 20”,您将提交“Item 1”。
    • 另外(感谢您的回答)我发现我的真实代码不使用建议。因此,不幸的是,您的答案在我的代码中根本不起作用。我相应地改变了我的问题。
    【解决方案2】:

    我发现使用 close 事件。你有一个属性(“_last”),它是最后按下的键。所以我可以决定选择是用鼠标还是回车(如果没有选择)

    autocompleteFacility.bind("close", function() {
        if(this._last === 13) {
            console.log("selection by enter");
            // autosubmit when enter used
            $("form").submit();
        } else {
            // if mouse is used, do nothing
            console.log("selection by mouse");
        }
    });
    

    摆弄我的解决方案:http://jsfiddle.net/fx2eprqv/2/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      • 2020-01-17
      • 2011-01-13
      • 1970-01-01
      • 2016-07-14
      相关资源
      最近更新 更多