Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не срабатывает просто скрипт
 
 автор: OLi   (16.04.2011 в 23:50)   письмо автору
 
 



for (var i = 100; i <= 210; i++) 
 {
  question2 = $('#v_'+i).val();
  if ((question2.length)>3) { alert('wwwwwwwww');} else {error_msg += '- Вид деятельности'; return_value = false; break; }
  
  
  
  }


Причем, этот кусок кода пропускает форму даже, если другие поля не заполнены... как бы нарушает js обработку

  Ответить  
 
 автор: cheops   (17.04.2011 в 08:59)   письмо автору
 
   для: OLi   (16.04.2011 в 23:50)
 

А что храниться в элементах управления с id='v_100' и т.д. и какого типа это элементы управления?

  Ответить  
 
 автор: OLi   (17.04.2011 в 12:10)   письмо автору
 
   для: cheops   (17.04.2011 в 08:59)
 

Это input с текстом или без...input type=text

  Ответить  
 
 автор: cheops   (17.04.2011 в 12:14)   письмо автору
 
   для: OLi   (17.04.2011 в 12:10)
 

Значение в return_value не может перезатираться? Т.е. нет нигде явного назначения true переменной return_value?

  Ответить  
 
 автор: OLi   (17.04.2011 в 12:20)   письмо автору
 
   для: cheops   (17.04.2011 в 12:14)
 

Даю полный скрипт:

function check(){ 
var pattern = /^$/;  
var error_msg = ""; 

 var return_value = true;  
  var name = $('#name_f').val()  
  if(name.match(pattern))  
  {  
    error_msg += '*** О ПРЕДПРИЯТИИ ***\nВы не заполнили\n\n - Название фирмы\n';  
    
    return_value = false;  
  }  
   
  var question = $('#forma').val()  
  if(question.match(pattern))  
  {  
    error_msg += '- Форма собственности\n\n\n'; 
    return_value = false;  
    
  }  
  
  
  
   
   
    var question = $('#tel').val()  
  if(question.match(pattern))  
  {  
    error_msg += '*** АДРЕС И ВИДЫ ДЕЯТЕЛЬНОСТИ ***\n Вы не заполнили\n\n- Телефоны/ Факс (Можно указать 1 № телефона)\n'; 
    return_value = false;  
    
  }  
  
  
  
  var question = $('#for_city').val()  
  if(question==0)  
  {  
    error_msg += '- Населенный пункт\n'; 
    return_value = false;  
    
  }  
  
  
    else {
  
  
  if ((question==3) || (question==4) || (question==5) || (question==6)|| (question==8)){
  
  var question = $('#pos_selo').val()  
  if(question.match(pattern))  
  {  
    error_msg += '- Название Города/Села\n'; 
    return_value = false;  
    
  }
  
  }
  
  
  }
  
  
  
  
  
  
  
  var question = $('#nedelis').val()  
  if(question==0)  
  {  
    error_msg += '- ПОЛНЫЕ рабочие дни\n'; 
    return_value = false;  
    
  } 
  
  
  
  var question = $('#street').val()  
  if(question.match(pattern))  
  {  
    error_msg += '- Улица\n'; 
    return_value = false;  
    
  }
  
  
  var question = $('#house').val()  
  if(question.match(pattern))  
  {  
    error_msg += '- Дом'; 
    return_value = false;  
    
  }

  
for (var i = 100; i <= 210; i++) 
 {
  question2 = $('#v_'+i).val();
  if ((question2.length)>3) { alert('wwwwwwwww');} else {error_msg += '- Вид деятельности'; break; return_value = false; }
  
  
  
  }
  
  
   
   
  if(!return_value)  
                    alert(error_msg);  
                    return return_value; 
   
  return true;  
           } 
    </script>

  Ответить  
 
 автор: cheops   (17.04.2011 в 12:36)   письмо автору
 
   для: OLi   (17.04.2011 в 12:20)
 

А как себя ведет функция? Всегда возвращает true (ошибки в синтаксисе нет)?

  Ответить  
 
 автор: OLi   (17.04.2011 в 12:43)   письмо автору
 
   для: cheops   (17.04.2011 в 12:36)
 

Если убрать цикл из скрипта, то все хорошо проходит, скрипт возвращает false если поля не заполнены и true если да.
Может быть не срабатывает потому что таких элементов нету? Т-е они у меня входят в интервал цикла, но скажем v_154 может и не быть на странице

  Ответить  
 
 автор: OLi   (18.04.2011 в 00:08)   письмо автору
 
   для: OLi   (17.04.2011 в 12:43)
 

Ребята, неужели никто не знает?

  Ответить  
 
 автор: cheops   (18.04.2011 в 00:28)   письмо автору
 
   для: OLi   (17.04.2011 в 12:43)
 

Попробуйте сначала проверять question2 при помощи if(question2), а потом уже манипулируйте им.

  Ответить  
 
 автор: OLi   (18.04.2011 в 00:56)   письмо автору
 
   для: cheops   (18.04.2011 в 00:28)
 

Сделал так:
 for (var i = 100; i <= 210; i++) 
{


 var tmp = document.getElementById('v_'+i);
 alert(tmp.value);
 if (tmp.value= null && tmp.value.length<2) {error_msg += '- Вид деятельности'; return_value = false;break; }
 
}

Тоже пока безрезультатно, попробую как вы написали...

  Ответить  
 
 автор: OLi   (18.04.2011 в 00:58)   письмо автору
 
   для: OLi   (18.04.2011 в 00:56)
 

Не получается проверить потому как скрипт пропускает форму... т-е не срабатывает это:
for (var i = 100; i <= 210; i++)  
 { 
  question2 = $('#v_'+i).val();
  if(question2) { alert(question2);return_value = false; } 
  if ((question2.length)>3) { alert('wwwwwwwww');} else {error_msg += '- Вид деятельности'; break; return_value = false; } 
   
   
   
  } 


Ничего не выводит... и другие поля тоже пропускает пустые

  Ответить  
 
 автор: cheops   (18.04.2011 в 01:33)   письмо автору
 
   для: OLi   (18.04.2011 в 00:58)
 

Попробуйте отладить скрипт на меньшем диапазоне, скажем от 100 до 102, потом увеличивайте интервал, чтобы локализовать проблему.

  Ответить  
 
 автор: OLi   (18.04.2011 в 01:52)   письмо автору
 
   для: cheops   (18.04.2011 в 01:33)
 

ничего не выводит ...уже максимально упростил
for (var i = 100; i <= 105; i++)
{
question2 = $('#v_'+i).val();
if(question2) { alert(question2); return_value = false; }



}

  Ответить  
 
 автор: AlexSol   (18.04.2011 в 08:24)   письмо автору
 
   для: OLi   (18.04.2011 в 01:52)
 

упростите до
for (var i = 100; i <= 105; i++)
{
alert($('#v_'+i).val())



}

  Ответить  
 
 автор: OLi   (18.04.2011 в 12:39)   письмо автору
 
   для: AlexSol   (18.04.2011 в 08:24)
 

Алерт пишет undefined все 5 раз

  Ответить  
 
 автор: cheops   (18.04.2011 в 13:17)   письмо автору
 
   для: OLi   (18.04.2011 в 12:39)
 

Прикрепите форму, если не сложно.

  Ответить  
 
 автор: OLi   (18.04.2011 в 13:32)   письмо автору
 
   для: cheops   (18.04.2011 в 13:17)
 

Форма генерится php, приведу лишь кусок кода:
<div onclick="tree_toggle(arguments[0])" style="text-align:left; margin-left:10px">
<ul class="Container">
  <li class="Node IsRoot IsLast ExpandOpen">
    <div class="Expand"></div>
    <div class="Content"><strong>Транспорт и перевозки</strong></div>
    <ul class="Container">  <li class="Node ExpandLeaf IsLast">
        <div class="Expand"></div>
        <div class="Content"><a onclick="document.getElementById('addcat5').style.display='block';document.getElementById('cat15').value = '5';document.getElementById('pod_cat12').value = '2';
        return goTo('#aaa');
        
        
        
        
        
        
        " href="#aaa">Автосервисы</a> <span id="addcat5" style="display:none"><span>Введите текст </span><input type="text" style="width:400px" id="v_2" name="v_2"><input type="hidden" id="cat15" name="cat1[]" value="0"><input type="hidden" id="pod_cat12" name="pod_cat1[]" value="0"></span></div>
        
      </li>  <li class="Node ExpandLeaf IsLast">
        <div class="Expand"></div>
        <div class="Content"><a onclick="document.getElementById('addcat4').style.display='block';document.getElementById('cat15').value = '5';document.getElementById('pod_cat11').value = '1';
        return goTo('#aaa');
        
        
        
        
        
        
        " href="#aaa">Автомагазины и автосалоны </a> <span id="addcat4" style="display:none"><span>Введите текст </span><input type="text" style="width:400px" id="v_1" name="v_1"><input type="hidden" id="cat15" name="cat1[]" value="0"><input type="hidden" id="pod_cat11" name="pod_cat1[]" value="0"></span></div>
        
      </li>
                                 
</div>


Дело в том что у меня элементов с id=v_123 может и не быть и тд.... я взял такой диапазон чтоб точно попасть

  Ответить  
 
 автор: cheops   (18.04.2011 в 14:17)   письмо автору
 
   для: OLi   (18.04.2011 в 13:32)
 

Проверяйте тогда существование элемента с нужным идентификатором по схеме, которая приводится ниже
<html>
  <head>
    <title>jQuery</title>
    <link href="css.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="jquery.js" ></script>
    <script type="text/javascript">
    $(document).ready(function(){ 
      var obj = $('#v_100').val();
      if(typeof(obj) == 'undefined') alert("Переменной нет"); 
      else alert("Переменная есть");
    });         
    </script>
  </head>
  <body>
    <div id='v_1'>Hello world!</div>
  </body>
</html>

  Ответить  
 
 автор: OLi   (18.04.2011 в 15:28)   письмо автору
 
   для: cheops   (18.04.2011 в 14:17)
 

Помогло, - теперь проверяет на сущ такого id, вот что сделал:
for (var i = 0; i <= 200; i++) 



      var obj = $('#v_'+i).val(); 
      if(typeof(obj) == 'undefined') {alert('no');}  
      else {
       if (obj.value= null || obj.value.length<2) {error_msg += '- Вид деятельности'; return_value = false;}
      
       }
      


}

НО ....
Выводит alert , а потом пропускает всю форму на отправку
Не срабатывает return_value = false;

  Ответить  
 
 автор: cheops   (18.04.2011 в 15:41)   письмо автору
 
   для: OLi   (18.04.2011 в 15:28)
 

.

  Ответить  
 
 автор: OLi   (18.04.2011 в 22:16)   письмо автору
 
   для: cheops   (18.04.2011 в 15:41)
 

Может браузер так интерпретирует код?

  Ответить  
 
 автор: cheops   (18.04.2011 в 22:46)   письмо автору
 
   для: OLi   (18.04.2011 в 15:28)
 

>Выводит alert , а потом пропускает всю форму на отправку
alert() какой выводит? С error_msg?

PS Вы при вызове обработчика в кнопке используете ключевое слово return (в 98% случаев из-за этого форма отправки срабатывает при наличии ошибок)?

  Ответить  
 
 автор: OLi   (18.04.2011 в 23:26)   письмо автору
 
   для: cheops   (18.04.2011 в 22:46)
 

без error_msc
использую return - всегда срабатывает на проверку незаполненных полей

  Ответить  
 
 автор: cheops   (18.04.2011 в 23:44)   письмо автору
 
   для: OLi   (18.04.2011 в 23:26)
 

Т.е. срабатывает alert('no');?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования