#forms #datepicker #save #octobercms
#формы #datepicker #Сохранить #octobercms
Вопрос:
Когда я использую виджет выбора даты в серверной форме, и пользователь вводит дату вручную, форма сохраняется при нажатии enter в этом поле; Есть ли какой-либо способ отключить это поведение?
мой файл yaml
fields:
field_1:
label: field_1
type: text
span: storm
cssClass: col-xs-4
attributes:
tabindex: 1
field_2:
label: field_2
type: text
span: storm
cssClass: col-xs-4
attributes:
tabindex: 2
date:
label: 'date, don't press enter!'
mode: date
type: datepicker
span: storm
cssClass: col-xs-4
attributes:
tabindex: 3
Ответ №1:
Вам нужно будет сделать это на javascript.
Вы можете включить javascript несколькими способами — мой предпочтительный вариант — определить часть в ваших полях.yaml и поместите javascript в частичное. Вы также можете напрямую включить javascript в create.htm и/или update.htm файлы в plugins/foo/bar/controllers/baz/
Что-то вроде этого будет работать:
$('form').on('keyup keypress', function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode === 13) {
e.preventDefault();
return false;
}
});
Обратите внимание, что не рекомендуется изменять способ работы форм и нажатий клавиш — поведение браузеров, программ чтения с экрана и т. Д. По умолчанию, предположим, Что нажатие enter отправит форму. Я предлагаю вам внести это изменение, только если у вас есть небольшая выборка пользователей, которым вы можете передать эту информацию (или просто скажите им не нажимать enter, пока они не захотят отправить форму).