|
|
|
| Всем доброго дня!
Очень плохо разбираюсь в JS, а хотелось бы усовершенствовать рабочий код проверки заполнения полей формы таким образом, чтобы дополнительно выводилось уведомление о минимальном количестве символов. Например, "количество символов в строке должно быть не менее 10!"
Вот рабочий JS код:
// JavaScript Document
function checkform(f) {
var errMSG = "";
// цикл ниже перебирает все элементы в объекте f,
// переданном в качестве параметра
// функции, в данном случае - наша форма.
for (var i = 0; i<f.elements.length; i++)
// если текущий элемент имеет атрибут required
// т.е. обязательный для заполнения
if (null!=f.elements[i].getAttribute("required"))
// проверяем, заполнен ли он в форме
if (isEmpty(f.elements[i].value)) // пустой
errMSG += " " + f.elements[i].name + "\n"; // формируем сообщение
// об ошибке, перечисляя
// незаполненные поля
// если сообщение об ошибке не пусто,
// выводим его, и возвращаем false
if ("" != errMSG) {
alert("Необходимо заполнить обязательные поля!\n");
return false;
}
}
function isEmpty(str) {
for (var i = 0; i < str.length; i++)
if (" " != str.charAt(i))
return false;
return true;
}
|
| |
|
|
|
|
|
|
|
для: sega_z
(04.04.2012 в 13:35)
| | Это к php отношения не имеет.
А вам не кажется, что у вас аргументы места перепутали?
Проверять текущий символ на пустоту нет смысла, лучше перед проверкой обрезать пробелы, а затем проверить длину строки, меньше она 10 или нет. Для всего этого будет достаточно одного цикла, без вызова isEmpty. | |
|
|
|
|
|
|
|
для: confirm
(04.04.2012 в 13:57)
| | Спасибо за ответ!
Ну я так и не понял, что нужно поменять в коде, чтобы символов не было меньше 10. | |
|
|
|
|
|
|
|
для: sega_z
(04.04.2012 в 14:24)
| | Первое, вами написанное выглядит примерно так:
есть дувушки А и Б, есть женские имена Марина и Наташа, при этом вы знаете, что у девушки А должно быть имя Марина, а у второй Наташа. Но вместо того, чтобы задать естественный вопрос девушкам - "Девушка, вас зовут Марина (Наташа)?", вы спрашиваете у имен - "Марина, ты принадлежишь девушке А?".
Ну разве это не абсурдно?
Получая текущий элемент в цикле (а это значение поля), вырезайте в нем пробелы (тут я не знаю, разрешены у вас пробелы внутри или нет, но судя по вызову функции нет), и присваиваете этот результат значению этого поля, а также проверяете после этого длину строки. Вот и все. Для того чтобы понять, пример:
var s = ' ab sd ';
s = s.replace(/\s/g, '');
alert(s+"\n"+s.length)
|
| |
|
|
|