Как запретить ввод в поле ввода определенных символов?
Или как разрешить только ввод букв, цифр и '/'?
Нравится
Приведу пример реализации проверки вводимых данных в поле «Средство связи 1» карточки [Контакт], когда тип средства связи равен «Телефон» и «E-mail»
1. Необходимо открыть сервис scr_ContactEdit, найти функцию function btnOKOnClick(Control)
2. В данной функции реализовать проверку для разных типов средства связи. Проверку можно реализовать непосредственно в этой же функции, как представлено ниже (выделено жирным), так и сформировав в виде отдельной функции, которую потом следует вызывать.
В выделенном фрагменте кода выполняется проверка на тип средства связи и вводимые данные, в поле «Средство связи1».
function btnOKOnClick(Control) {
var Dataset = dlData.Dataset;
if (!CheckContactData(Dataset)) {
return;}
//если тип средства связи1 равен «Телефон»
if (Dataset.Values('Communication1TypeID') == '{DBCB6A43-D99F-45AE-9B41-037DE595242E}') {
if ((Dataset.Values('Communication1').length > 7) &&
(Dataset.Values('Communication1').length < 11) &&
IsIntegerValue((Dataset.Values('Communication1'))) )
{
scr_BaseDBEdit.btnOKOnClick(Control);
} else {
ShowWarningDialog('Формат должен быть следующего типа: телефон цифры от 7-11 знаков');
return;
}
return;
}
//если тип средства связи1 равен «Email»
if (Dataset.Values('Communication1TypeID') == '{7A628D16-D7D0-4979-B8BA-B64EF54A0366}') {
if (IsCharInString('@', Dataset.Values('Communication1')))
{
scr_BaseDBEdit.btnOKOnClick(Control);
} else {
ShowWarningDialog('Формат должен быть следующего типа:email должен содержать символ @');
return;
}
return ;
}
scr_BaseDBEdit.btnOKOnClick(Control);
}
В таком случае сделайте проверку сравнения каждого символа (OnKeyPressDown), при вводе ненужного - присваиваеть ему значение null.
На просторах сети был найден пример запрета на ввод кириллицы:
function withoutCyr(input) {
var value = input.value;
var re = /а|б|в|г|д|е|ё|ж|з|и|ё|к|л|м|н|о|п|р|с|т|у|ф|х|ц|ч|ш|щ|ъ|ы|ь|э|ю|я/gi;
if (re.test(value)) {
value = value.replace(re, '');
input.value = value;
}
}
"Гакало Игорь Александрович" написал:На просторах сети был найден пример запрета на ввод кириллицы:function withoutCyr(input) {
var value = input.value;
var re = /а|б|в|г|д|е|ё|ж|з|и|ё|к|л|м|н|о|п|р|с|т|у|ф|х|ц|ч|ш|щ|ъ|ы|ь|э|ю|я/gi;
if (re.test(value)) {
value = value.replace(re, '');
input.value = value;
}
}
а это опять проверка после ввода... значит не получится то чего я хочу?
Не обязательно привязывать сравнение к OnKeyPressDown. Для обработки найдите другое событие.
На изменение набора данных.
Чтоб не гадать пробуйте на dlDataOnDatasetDataChange (на датасете). При попытке изменения значения любого из полей будет задействована эта функция.