[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ограничение ввода символов в prompt
AndreyChaki
при реализации новых функций для CMS столкнулся с проблемой, есть всплывающее окно prompt, просит ввести некоторое значение, все работает как надо, но нужно ограничить ввод символов, то есть разрешить только русские и латинские символы, символы "_" "-" "/" при этом вводимые данные не должны начинаться с этих символов и символ "/" может быть только 1 в конце строки

сама функция

function ChangeField(table,field,id,objID){
nameData = prompt ("Введите новое значение:", jQuery('#'+objID).html() );
if (nameData != null)
jQuery('#'+objID).load('/index.php',{mod: 'edit', type: 'AJAX', table: table, field: field, id: id, new_value: nameData});
}


подскажите такое возможно? и в какую сторону копать?



Спустя 17 минут, 42 секунды (6.12.2011 - 12:08) sharki написал(а):
AndreyChaki
Внутри ChangeField вешай событие на нажатие клавиши, и все время проверяй общее содержимое текста, если неправильно то восстановить предыдущий вариант, типа ввел неправильную букву она раз и удалилась smile.gif

Спустя 1 час, 11 минут, 24 секунды (6.12.2011 - 13:20) AndreyChaki написал(а):
принцип понял, но не знаю как это реализовать программно, можете предоставить пример? небольшой

Спустя 1 час, 25 секунд (6.12.2011 - 14:20) killer8080 написал(а):
а так не подходит?
function ChangeField(table,field,id,objID){
var nameData = prompt ("Введите новое значение:", jQuery('#'+objID).html() );
if(!/^[a-zа-яё][a-zа-яё_-]*([a-zа-яё_-]|\/)$/i.test(nameData)){
alert("Ошибка ввода");
return false;
}
if (nameData != null)
jQuery('#'+objID).load('/index.php',{mod: 'edit', type: 'AJAX', table: table, field: field, id: id, new_value: nameData});
}

Спустя 31 минута, 48 секунд (6.12.2011 - 14:52) AndreyChaki написал(а):
в принципе устраивает. но после алерта показывает пустое окно с текстом false, и удаление из поля приводит к ошибке

Спустя 8 минут, 17 секунд (6.12.2011 - 15:00) killer8080 написал(а):
AndreyChaki
а как вызывается эта функция?

Спустя 7 минут (6.12.2011 - 15:07) AndreyChaki написал(а):
<a href="javascript:ChangeField2('menuitem','virtualname',{$item.id},'menuitemAltLink{$item.id}')"  onclick="return 0" title=''><img src='/images/admin/edit.png' alt=''/></a>

Спустя 5 минут, 22 секунды (6.12.2011 - 15:13) killer8080 написал(а):
замени на
<a href="#" onclick="ChangeField2('menuitem','virtualname',{$item.id},'menuitemAltLink{$item.id}'); return false;" title=''><img src='/images/admin/edit.png' alt=''/></a>

Спустя 16 часов, 11 минут, 7 секунд (7.12.2011 - 07:24) AndreyChaki написал(а):
спасибо огромное! единственное что теперь не могу удалять значение записывая пустое поле, можно это как то поправить или лучше дописать удаление и повесить на другую ссылку?

Спустя 6 часов, 25 минут, 28 секунд (7.12.2011 - 13:49) killer8080 написал(а):
можно и отдельной ссылкой, можно и регулярку поправить, как больше нравится user posted image
function ChangeField(table,field,id,objID){
var nameData = prompt ("Введите новое значение:", jQuery('#'+objID).html() );
if(!/($^)|(^[a-zа-яё][a-zа-яё_-]*([a-zа-яё_-]|\/)$)/i.test(nameData)){
alert("Ошибка ввода");
return false;
}
jQuery('#'+objID).load('/index.php',{mod: 'edit', type: 'AJAX', table: table, field: field, id: id, new_value: nameData});
}

Спустя 44 минуты, 52 секунды (7.12.2011 - 14:34) AndreyChaki написал(а):
огромное спасибо! возьму на заметку изучить регулярные выражения

Спустя 7 минут, 33 секунды (7.12.2011 - 14:42) killer8080 написал(а):
Цитата (AndreyChaki @ 7.12.2011 - 13:34)
огромное спасибо!

Да не за что wink.gif
Цитата (AndreyChaki @ 7.12.2011 - 13:34)
возьму на заметку изучить регулярные выражения

Правильный вывод smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.