Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2013, 10:57
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

Проверка на заполнение текстового поля
Здравствуйте, давно сижу с одним простеньким, наверное, скриптом. 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.">&nbsp;".$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>                         //ну а это я написал что бы вы были в курсе в каких тегах вся это радость происходит

Последний раз редактировалось Гробовщик, 06.06.2013 в 11:07.
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2013, 11:41
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

ну это как-то несеръезно

вместо
document.form.array[i].value
наверно имелось в виду
document.form[array[i]].value


-------------------------------------
P.S.
тем более где вы взяли "document.form"? у меня такого нет
зато есть "document.forms"
document.forms[0][array[i]].value

Последний раз редактировалось mta88, 06.06.2013 в 11:44.
Ответить с цитированием
  #3 (permalink)  
Старый 06.06.2013, 11:50
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

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;
}
Ответить с цитированием
  #4 (permalink)  
Старый 06.06.2013, 12:00
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

mta88,
Я всё понял, спасибо тебе, ты мне наверное небесами послан, я об этот скрипт чуть мозг себе не сломал.
Ответить с цитированием
  #5 (permalink)  
Старый 12.06.2013, 14:23
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

пассаж о небесах особенно трогателен из уст юзернейма "гробовщик".
Ответить с цитированием
  #6 (permalink)  
Старый 12.06.2013, 14:36
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Юзай HTML5 валидацию плюс polyfill
Ответить с цитированием
  #7 (permalink)  
Старый 14.06.2013, 09:09
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

danik.js,
А чё он так может?
Ответить с цитированием
  #8 (permalink)  
Старый 14.06.2013, 13:15
Интересующийся
Отправить личное сообщение для Solonik Посмотреть профиль Найти все сообщения от Solonik
 
Регистрация: 14.06.2013
Сообщений: 29

Не совсем понятно вообще как это будет работать. Ты проверяешь значение равно нулю или нет ?Или нужно чтобы длинна строки была не равна нулю ?
Если длина то нужно использовать .length == 0
Форма одна странице ? Если да к ней можно обращаться как document.forms[0];
Ответить с цитированием
  #9 (permalink)  
Старый 14.06.2013, 13:34
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Гробовщик
Тут я предаю свой массив из php в JS
Это делается проще:
var array = <?=json_encode($arr)?>;
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка Тестового поля arahmanov AJAX и COMET 7 05.08.2011 00:35
Вывод содержимого текстового поля по onChange Ilyich Events/DOM/Window 2 08.06.2011 18:37
Проверка формы на заполнение ybiza Элементы интерфейса 3 03.11.2010 22:28
Проверка текстового поля pingvinchic Events/DOM/Window 14 13.02.2010 20:52
проверка поля в скрытом div'е dmus AJAX и COMET 4 10.08.2009 10:34