Проверка на заполнение текстового поля
Здравствуйте, давно сижу с одним простеньким, наверное, скриптом. js знаю только поверхностно, начинаю только учить так сказать...
Так вот скрипт у меня такой: Есть формочка с текстовыми полями которые необходимо будет проверить на заполнение, имена полей заранее не известны, известно что именуются они как kol[$i] (из php). Все эти значения я положил в массив $arr, после чего этот массив я отдал в JS в массив "array" И вот когда я начинаю делать проверку скрипт не отрабатывается. Вот код: echo '<form action="proverka.php" method="post" name="form" autocomplete="off" onsubmit="return validate_form ( );">'; echo "<p> Выберите объект: <select name=s_object size=1>"; //Выбор объектов //Здесь идёт код combobx, он работает) echo '</select></p>'; Далее я вывожу значения из базы (id-шники) и потом складываю их в массив добавляя приставку "kol" $arr[] = "kol".$i.""; Сами текстовые поля выглядят так <div style='width:48%;float:right;'> <p class='ta4'><input type='text' name=kol".$i."> ".$mat['ed_izm']."</p> </div>"; Кнопочка далее echo "<div style='width:48%;float:right;'> <p><input type='submit' value='Далее->' name='button'> </div>"; Тут я предаю свой массив из php в JS unset($tmp); foreach ($arr as $dta) { $tmp[]='\''.$dta.'\''; } echo '<script type="text/javascript"> var array=new Array('.implode(',',$tmp).'); </script>'; И конечно скрипт проверки <!-- //Это защита скрипта от старых браузеров (мало ли) //for (i in array) { // document.write(i); // document.write(array[i]); Так я проверил что массив существует, и да он существует // document.write('<br>'); //} function validate_form ( ) ///Сама функция { valid = true; //Я возвращаю не false а valid, какая разница=) if ( document.form.s_object.value == "0" ) { alert ( "Пожалуйста выберите строящийся объект" ); //Проверка значения в combobox, она как раз работает valid = false; } // И вот он проблемный код который не работает, будь он не ладен for (i in array){ //Разбираем массив (i увиличеваем) if (document.form.array[i].value =='') // если поставить здесь строку if (document.form.kol33.value =='') то она бл*дь работает, но я не знаю значения заранее, мне надо так =( { alert('Введены количества не для всех обьектов'); valid = false; } } return valid; } //--> </form> </body> </html> //ну а это я написал что бы вы были в курсе в каких тегах вся это радость происходит |
ну это как-то несеръезно
вместо document.form.array[i].valueнаверно имелось в виду document.form[array[i]].value ------------------------------------- P.S. тем более где вы взяли "document.form"? у меня такого нет зато есть "document.forms" document.forms[0][array[i]].value |
mta88,
Я говорю новичок в JS, но жизнь заставила разбираться... Скрипт вообще забил, и переходит на другую страницу ничего не спрашивая Сделал так function validate_form ( ) { valid = true; if ( document.form.s_object.value == "0" ) { alert ( "Пожалуйста выберите строящийся объект" ); valid = false; } for (i in array){ if (document.form.[array[1]].value =='') { alert('Введены количества не для всех обьектов'); valid = false; } } return valid; } |
mta88,
Я всё понял, спасибо тебе, ты мне наверное небесами послан, я об этот скрипт чуть мозг себе не сломал. |
пассаж о небесах особенно трогателен из уст юзернейма "гробовщик".
|
Юзай HTML5 валидацию плюс polyfill
|
danik.js,
А чё он так может? |
Не совсем понятно вообще как это будет работать. Ты проверяешь значение равно нулю или нет ?Или нужно чтобы длинна строки была не равна нулю ?
Если длина то нужно использовать .length == 0 Форма одна странице ? Если да к ней можно обращаться как document.forms[0]; |
Цитата:
var array = <?=json_encode($arr)?>; |
Часовой пояс GMT +3, время: 01:01. |