2015-07-07 2 views
1

Я использую кендо в угловом режиме. Когда я выбираю из 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/

Бонус: Я хочу, чтобы решить, если выбор был сделан с помощью клавиш (введите) или щелчком мыши.

ответ

0

я обнаружил, что работает в тесном случае. На котором у вас есть свойство («_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/

2

Вы можете использовать change событие

См Demo

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

Спасибо, за ваш ответ. Я пробовал это раньше, и это не работает с мышью. Напишите «Ite», затем нажмите «Item 20», и вы отправите «Item 1». – leo

+0

Также (спасибо вашему ответу) я узнал, что мой реальный код не использует предложение. Поэтому ваш ответ, к сожалению, вообще не работает в моем коде. Я изменил свой вопрос. – leo

+0

@leo см. Мое редактирование –

Смежные вопросы