Понадобилось реализовать ограничение на ввод данных в текстовом поле.С помощью PHP это не реализовать?Мне нужно,чтоб можно было вводить латиницу, цифры,дефис и подчеркивание.
Пока нашел только на jave
<script type="text/javascript">
function testKey(e)
{
// Make sure to use event.charCode if available
var key = (typeof e.charCode == 'undefined' ? e.keyCode : e.charCode);
// Ignore special keys
if (e.ctrlKey || e.altKey || key < 32)
return true;
key = String.fromCharCode(key);
return /\w/.test(key);
}
</script>
Но разобраться в нем мне не под силу.Может кто подскажет как изменить его под мои условия?
Спустя 7 минут, 54 секунды (29.03.2011 - 15:03) Zerstoren написал(а):
$str = preg_replace('#[^0-9a-z-A-Zа-яА-Яё\-_]#','',$str);
просто зачистит все символы которые не относятся к этому ряду
$str = preg_match('#[^0-9a-z-A-Zа-яА-Яё\-_]#',$str);
А так проверит, не введены ли запрещенные символы
Спустя 12 минут, 23 секунды (29.03.2011 - 15:15) Зодчий написал(а):
Zerstoren, не очень понял как это применить.Я хочу чтобы внутри формы нельзя было написать то,что я ограничу.А тут как я понимаю, только при попадании в переменную.
У меня выглядит вот так
Так в inpute не пишуться запрещенные символы.
У меня выглядит вот так
<form action="work_ud_add_od_script.php" name="identifik" method="POST">
<input type="hidden" name="ud_id" value="<?php echo htmlspecialchars($ud_id) ?>">
<input type="hidden" name="od_id" value="<?php echo htmlspecialchars($od_id) ?>">
Введите идентификатор:<br>
<input name="od_identifik" type="text" onkeypress="return testKey(event)" size="50" maxlength="70">
<script type="text/javascript">
function testKey(e)
{
// Make sure to use event.charCode if available
var key = (typeof e.charCode == 'undefined' ? e.keyCode : e.charCode);
// Ignore special keys
if (e.ctrlKey || e.altKey || key < 32)
return true;
key = String.fromCharCode(key);
return /\w/.test(key);
}
</script>
<input name="submit" type="submit" value="Установить">
</form>
Так в inpute не пишуться запрещенные символы.
Спустя 49 минут, 7 секунд (29.03.2011 - 16:04) Invis1ble написал(а):
В javascript тоже есть регулярные выражения, почитай про них.
Однако не могу тебя не огорчить: если юзер отключит в браузере javascript, то твой код естественно не сработает, поэтому на стороне сервера все равно прийдется делать проверку.
Однако не могу тебя не огорчить: если юзер отключит в браузере javascript, то твой код естественно не сработает, поэтому на стороне сервера все равно прийдется делать проверку.
Спустя 6 часов, 8 минут, 43 секунды (29.03.2011 - 22:13) PiratXXX написал(а):
Зодчий
Цитата |
Пока нашел только на jave |
ну во-первых на js (сокращенно от JavaScript), а java это совсем дугое.
во-вторых
onkeypress-Выполняет код JavaScript при возникновении события KeyPress; то есть, если пользователь удерживает клавишу нажатой.
а что делать если не будет удерживать клавишу?
в-третьих для твоей задачи нужны регулярные выражения как написал Zerstoren, И проверку по регулярке нужно делать и в js и в php.
регулярные выражения кстати одинаковые сто в js что в php.
в твоем случае выбрось этот код который ты нашел, и учи регулярные выражение и их использование в php. тема сложноватая но полезная!)
Спустя 18 часов, 47 минут, 25 секунд (30.03.2011 - 17:00) Зодчий написал(а):
Invis1ble,
PiratXXX,
у меня на странице проверка включенного js у клиента иначе редирект.
Может все-таки подскажите как можно сделать дефис активным в данном скрипте?
PiratXXX,
у меня на странице проверка включенного js у клиента иначе редирект.
Может все-таки подскажите как можно сделать дефис активным в данном скрипте?
Спустя 1 час, 10 минут, 20 секунд (30.03.2011 - 18:11) Invis1ble написал(а):
Зодчий
Я ж написал, через регулярку, а в твоем коде регулярок нет.
Я ж написал, через регулярку, а в твоем коде регулярок нет.
Спустя 26 минут (30.03.2011 - 18:37) alex12060 написал(а):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>Гостевая книга 1.0</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script>
function check(email) {
var reg=/[0-9a-z-A-Z\-_]/
var result=(reg).test(email.substr(email.length - 1, 1));
return result
}
function bad(form) {
form = form.slice(0, -1);
//alert ('Можно вводить только цифры и запятую!');
return form;
}
</script>
</head>
<body>
<input type="text" onkeyup="check(document.getElementById('form').value) ? void(0) : this.value = bad(document.getElementById('form').value)" id="form" />
</body>
</html>