Я борюсь с захватом события Enter в текстовом поле и попробовал несколько разных примеров, которым пока не повезло. Текстовое поле находится внутри таблицы в шаблоне виджета html. Я на доджо 1.9.не удалось захватить Вход в текстовое поле
Вот определение внутри файла шаблона:
<td id="BBC"><input type="text" name="SrchWithin"
placeholder="Search within Last Name" id="SrchWithin"
dojoType="dijit.form.TextBox" value="" style="width: 12em;" />
/td>
Вот некоторые попытки, основанные на ряде примеров в Интернете:
require(["dijit/form/TextBox"]);
require(["dojo/on","dojo/keys"],
function(on, keys) {
on(digit.byId("SrchWithin"), "keypress", function(evt) {
console.log("key = " + evt.charOrCode);
});
});
Эта попытка окончилась с цифры не определены.
Большинство других просто никогда не получил событие:
var taskDblClkHndl = dojo.connect(dojo.byId("SrchWithin"), "onKeyUp", function(event) {
console.log("key pressed");
});
require([ "dojo/dom-construct", "dojo/on", "dojo/query", "dojo/keys",
"dojo/domReady!" ], function(domConstruct, on, query, keys) {
query("input[type='text']").on("keydown", function(event) {
console.log("event.keyCode" + event.keyCode);
});
});
<script
type="dojo/connect" event="onKeyDown" args="evt">
var key = evt.charOrCode;
if (key == dojo.keys.ENTER) {
console.log("dojo.keys.ENTER");
}
</script>
Так много способов сделать это, и я не могу получить один рабочий ... Любые комментарии о том, что мне не хватает?
Update: возможно, это вопрос контекста, где я пытаюсь этот код ... Я поставил следующий код, где я пытался предложение, используя запрос и он не показывает поля ввода я ожидал :
var testit = dojo.query("input, button, textarea, select", this.domNode).forEach(
function(inputElem) {
console.log(inputElem);
}
);
Однако, когда я добавил этот же код для метода пост() в моем файле widget.js, я нашел текстовое поле SrchWithin ... Не уверен, но, как добавить код виджета или если я могу использовать точку прикрепления из моего файла main.jsp ...
Ваши примеры/попытки кажутся вроде бы повсюду - пытаетесь ли вы захватить события клавиатуры для виджета dijit или непосредственно для ввода элементов? Вы используете устаревшие Dojo или AMD? 'Цифра.byId' никогда не будет определяться, так как библиотека виджета Dojo - 'dijit', а не' digit'. –
Попытки повсюду, потому что я пытаюсь столько решений, сколько могу найти в этой теме :-) У меня есть текстовое поле, определенное в шаблоне. Определение выше. Я хочу знать, когда в этом текстовом поле нажата Enter. Я исправил «цифровую» проблему, и теперь я получаю TypeError: dijit.byId не является функцией. Я использую AMD. Guilherme, я пробовал этот код и никогда не получал console.log msg. Я помещаю этот код в основной .jsp-файл после создания виджета. Я использую id из html (id = "SrchWithin") –
Добавил обновление к моему описанию проблемы с образцом кода. Основываясь на некотором коде, который я использую для ввода полей ввода, контекст кажется неправильным, он не выгружает поля из виджета. Следствие. –