|
|
|
|
|
для: lElectroHardl
(08.09.2010 в 21:08)
| | Это не скрипт, это пример. А вот \n напрашивается, если вы определяете переменную, например, error, изначально с пустым значением. Далее проверяете поля формы, и если не отвечает условию, то добавляете в эту переменную соответствующее сообщение с переносом строки. По окончании проверки проверяете значение этой перменной, и если оно не пустое, то выводите ее и отменяете отправку формы. Вот в этом случае у вас будет сообщение из строк о каждом поле. И фокус можно установить у первого поля, да и вообще поместить сообщения рядом с полями.
То о чем вы ранее писали (else if), я удалил потому, что не правильно выразился в запарке (не до вас было) - в этом случае пользователь будет получать сообщение, далее прочитав его, следующее и т.д. (скрипт не остановит выполнение, дав время на исправление ошибки). Значит ему надо будет запомнить, что и где он накосячил, и не дай бог таких полей как и списков будет тоже 20 или более штук.
Можно вообще наколбасить до бессовестного красиво, но логично все это должно быть, а не абы как и неудобное для пользователя. | |
|
|
|
|
|
|
|
для: sim5
(08.09.2010 в 20:36)
| | Спасибо за скрипт.
Естественно далее данные обрабатывает сервер. | |
|
|
|
|
|
|
|
для: lElectroHardl
(08.09.2010 в 20:10)
| | Зачем \n? Вот вы можете объяснить к чему вы этот перевод строки вставляете в сообщение, если у вас оно одной строкой?
По всем вопросам JS, на форуме есть соответствующий раздел.
<script>
function func(f) {
var n = 0;
var m = f.getElementsByTagName("select");
for(i=0; i<m.length; i++) if(m[i].value > 0) n++;
if(n<2) {
alert("Not selected!");
return false;
}
}
</script>
<form action="" onsubmit="return func(this)">
<select name="id_select[]">
<option value="0" SELECTED>Select...</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
<select name="id_select[]">
<option value="0" SELECTED>Select...</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
<select name="id_select[]">
<option value="0" SELECTED>Select...</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
<input type="submit" value="Send">
</form>
|
Сколь бы вы не проверяли у клиента, все это сервис - проверкой все равно должен заниматься сервер. | |
|
|
|
|
|
|
|
для: sim5
(08.09.2010 в 19:53)
| | Вот смотрите. Нужно проверить, было ли выбрано минимум 2 Селекта.
А массив формируется исходя из (<input type="checkbox" name="$name[]" />)
Подправил, по вашему совету:
// кусок:
if (form.portion.value < 1)
{
e_mes += 'Сколько порций в рецепте?\n';
return_value = false;
}
if (form.img.value == "")
{
e_mes += 'Рецепт без фотографии?.\n';
return_value = false;
}
if (form.preparation.value.length < 200)
{
e_mes += 'А как готовить блюдо?';
return_value = false;
}
if(!return_value)
alert(e_mes);
return return_value;
|
| |
|
|
|
|
|
|
|
для: lElectroHardl
(08.09.2010 в 19:50)
| | Да не важно, прочли или нет - лажа полная, ибо лишнее и непонятное к чему. Заново лучше прочтите.
Какого массива? И зачем его подсчитывать, вы можете объяснить? | |
|
|
|
|
|
|
|
для: sim5
(08.09.2010 в 19:46)
| | Доработаю этот момент.
Помогите с подсчетом элементов массива пожалуйста.
Через не хочет, через тоже не хочет...
И еще, <option> у меня генерирует сам скрипт JS. | |
|
|
|
|
|
|
|
для: lElectroHardl
(08.09.2010 в 19:40)
| | Ерунда все это... Мне сейчас не до объяснения, но думайте, елки палки....
Проверяйте все обязательные поля для заполения, ну или все поля на корректный ввод. Фрмируйте список сообщений (только в этом случвае вывод \n в них логичен). По значению этого списка принимайте решение на отправку или нет формы.
В проивном случае, сразу же при первой ошибке return false. Не логично у вас все построено. | |
|
|
|
|
|
|
|
для: sim5
(08.09.2010 в 19:00)
| | >фокус
у меня же стоит elseif. Т.е. проверка идет поэлементно (сначала одно поле, затем второе...).
Что бы узнать, выбрал ли человек хотя бы 2 select`а. | |
|
|
|
|
|
|
|
для: lElectroHardl
(08.09.2010 в 18:53)
| | >Не, фокус работает отменно.
Даже так? Ну что за вздор вы несете - фокус будет установлен последнему элементу с ошибкой. Хотя мне собственно все равно, если это нормально, то ....
Зачем подсчитать? | |
|
|
|
|
|
|
|
для: sim5
(08.09.2010 в 18:44)
| | Не, фокус работает отменно.
Только есть одна загвоздочка.
У меня дальше в форме есть 20 select`ов, у каждого из которых свое значение в массиве id_select[].
Как мне подсчитать к-во селектов, где поле != 0.
Заранее спасибо. | |
|
|
|
|