选择

时间:2015-07-07 07:04:26

标签: angularjs kendo-ui

我在angularjs中使用了kendo。当我从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/

奖励:我想决定选择是用键(输入)还是用鼠标点击完成。

2 个答案:

答案 0 :(得分:2)

您可以使用change事件

请参阅Demo

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

答案 1 :(得分:0)

我发现使用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/