Программирование => JavaScript & JScript => Тема начата: Skyer от 16 Мая 2004, 20:51:24
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Skyer от 16 Мая 2004, 20:51:24
Я уже создавал эту тему в PHP-форуме, но сейчас мне такое понадобилось и на JS. Искал в ФАКе, искал в Интернете, но что-то не работают варианты, которые я находил. Соответственно, логику пока тоже не смог понять.
Как это сделать?
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Макс от 17 Мая 2004, 14:54:33
function onlyDigits(the_form,the_element) { var elt = document.forms[the_form].elements[the_element]; var elt_cnt = (typeof(elt.value.length) != \'undefined\') ? elt.value.length : 0;
if (elt_cnt) { nnil = new String(\'0\'); ordnil = nnil.charCodeAt(0);
nnine = new String(\'9\'); ordnine = nnine.charCodeAt(0);
ndot = new String(\'.\'); orddot = ndot.charCodeAt(0);
for (var i = 0; i < elt_cnt; i++) { var chr = elt.value.charAt(i); var och = elt.value.charCodeAt(i); l = new String(elt.value);
myReg = new RegExp(chr,"gi");
if ((och < ordnil || och > ordnine) && och != orddot) { elt.value = l.replace(myReg,\'\'); } } }
}
правда у него задача не дать вбить в поле ничего кроме цифр и точки. работает в реальном времени :)
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Skyer от 17 Мая 2004, 20:56:16
ThE0ReTiC Как форма в таком случае выглядеть должна?
Макс Скопипейстил, не сработало. Как должна форма выглядеть при таком скрипте?
У каждой формы у меня такие имена
............. и т.д.
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: ThE0ReTiC от 18 Мая 2004, 10:19:03
как угодно ты же передаешь в функцию the_form,the_element
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Skyer от 18 Мая 2004, 18:17:10
ThE0ReTiC Я не опытный в JS, и то, что я попробовал - не сработало.. Я пробовал эти варианты(в начале файла - твоя функция, в конце - эти варианты:
1)
echo \'
\';
?>
2).
echo \'
\';
?>
3).
echo \'
\';
?>
И ещё те же варианты, но onclick="onlyDigits()"
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Макс от 18 Мая 2004, 18:41:08
Цитировать
Skyer: Скопипейстил, не сработало. Как должна форма выглядеть при таком скрипте?
это код для функции обработчика onsubmit :
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Skyer от 18 Мая 2004, 19:01:49
Цитировать
Готовый, рабочий код для copy/paste не дам, а то ты вообще ножки свесил, JS не учишь, разобраться не пытаешься
Пытаюсь, но не получается. Просто прогу надо бы побыстрее сделать, поэтому я взял средний вариант - пытаюсь понять сам, но если не получается - не тяну с обучением, и спрашиваю:)
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: ThE0ReTiC от 18 Мая 2004, 19:52:42
Skyer А х ты мать моя... я те забыл сказать, что вешать это надо на Onkeyup текстбокса
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: ThE0ReTiC от 18 Мая 2004, 19:53:59
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Skyer от 18 Мая 2004, 20:01:14
Макс Спасибо! Твой вариант дискретно работает. Как адаптировать его под:
............. и т.д.
Я попробовал вот это:
...........
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Макс от 18 Мая 2004, 21:13:23
Skyer посмотри свою прошлую тему, где надо было помечать все поля. Посмотри, как там была организована работа через массив elements[] Точно также и здесь сделай
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Skyer от 26 Мая 2004, 16:39:04
Макс Как в javascript выглядит: "Если имя поля = newnomer"?
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Макс от 26 Мая 2004, 16:48:04
document.form.elements[\'newowner\'].value у меня в IE так работает. Про другие броузеры не знаю
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Skyer от 28 Мая 2004, 13:39:00
Макс Пытаюсь обкатать этот вариант, он работает во всех браузерах, если индекс массива - цифра(\'newnomer\'). Но почему не работает это, где ошибка:
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Макс от 28 Мая 2004, 13:47:24
зачем тебе цикл? у тебя же в форме только одно поле.
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Skyer от 28 Мая 2004, 14:06:41
Это пример, по которому я хочу понять как работает. В моей программе мне нужен цикл.
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Макс от 28 Мая 2004, 14:28:12
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Skyer от 28 Мая 2004, 14:35:21
Понятно - "i" он воспринимает как букву, а не как переменную. Как сделать так, чтобы воспринимал как переменную? Убирал кавычки - не работает.
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Макс от 28 Мая 2004, 15:02:06
в document.forma.elements["slava"].value "slava" - это строка (Что такое типы данных и строковые типы данных в частности знаешь ?). Со строками в яваскрипте работать умеешь ?
То есть, проверка, существует ли вообще данный элемент формы. Как сделать так, чтобы эта проверка работала?
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Макс от 29 Мая 2004, 12:13:33
через typeof()
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Skyer от 29 Мая 2004, 20:44:19
Макс Пока я пытаюсь найти, как эту typeof() использовать, объясни, плиз, почему if (document.forma.elements["slava["+i+"]"].value == "что-то") {} не работает, в то время как вот этот вариант - document.forma.elements["slava["+i+"]"].value = \'что-то\'; - выполняется.
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Макс от 30 Мая 2004, 12:50:11
повторяю тебе уже в который раз Фраза "не работает" - не несет никакой смысловой нагрузки. По этой фразе я ничего определить не могу
Название: Проверить, являются ли данные из формы только цифрами, или содержат так же буквы.
Отправлено: Skyer от 30 Мая 2004, 19:19:12