Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.10.2011, 15:46
Новичок на форуме
Отправить личное сообщение для San4eZ Посмотреть профиль Найти все сообщения от San4eZ
 
Регистрация: 05.10.2011
Сообщений: 4

Странно себя ведет простейшая проверка введенных данных в форме
Товарищи, мой мозг просто взрывается... Суть проблемы:
Есть система управления конструкциями, сделана в виде веб-приложения, написана на пхп, но не это главное. В системе несколько форм вывода, редактирования и добавления информации в БД. Возникла необходимость написать простейшую проверку на корректность введенных данных. Поскольку формы однотипные то приведу один пример кода:
function check_form(form4){
if(form4.month.value==''){
alert('Необходимо заполнить поле Месяц!');
form4.month.focus();
return false;
}else if(form4.year.value==''){
alert('Необходимо заполнить поле Год!');
form4.year.focus();
return false;
}else if(form4.client_title1.value=='' || form4.client_title2.selectedIndex == 0){
alert('Необходимо заполнить поле Наименование клиента!');
form4.client_title1.focus();
return false;
}else if(form4.order_doc.value==''){
alert('Необходимо заполнить поле Документ!');
form4.order_doc.focus();
return false;
}else if(form4.order_cost.value==''){
alert('Необходимо заполнить поле Цена!');
form4.order_cost.focus();
return false;
}else{
return true;
}
}


Проблема в том что валидация работает через пень-колоду, то есть допустим вчера вечером все прекрасно отрабатывает, сегодня утром уже не работает(причем на одной форме работает, на второй нет, на третьей опять все в норме), и это при том что код никто не правил и даже не смотрел на него(и на пхп-шный в том числе). Почему такое может происходить?
Ответить с цитированием
  #2 (permalink)  
Старый 05.10.2011, 16:13
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от San4eZ
Почему такое может происходить?
То мубуть не в скрипте дело... А в хтмл-разметке...

Полного тестового примера нет. Перечня ошибок нет. Оплата так же молчёк...
Ответить с цитированием
  #3 (permalink)  
Старый 05.10.2011, 16:46
Новичок на форуме
Отправить личное сообщение для San4eZ Посмотреть профиль Найти все сообщения от San4eZ
 
Регистрация: 05.10.2011
Сообщений: 4

а что не так может быть в хтмл разметке?
<form action="add/event.add.php" method="post" name="form4" onsubmit="return check_form(this);">
        <input type="hidden" name="cat" value="<? echo $cat; ?>">
        <input type="hidden" name="event" value="orders.add">
        <input type="hidden" name="data" value="<? echo date("Y-m-d H:i:s"); ?>">
        <tr height="40">
        	<th width="200" align="left" valign="middle"><? echo $order_arr[3]; ?>:</th>
            <td valign="middle"><input type="text" name="month" style ="width: 100px;">&nbsp;&nbsp;&nbsp;<b><? echo $order_arr[4]; ?></b>:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <input type="text"  name="year" style="width: 185px;"/></td>
        </tr>
        <tr height="40">
        	<th width="200" align="left" valign="middle"><? echo $order_arr[5]; ?>:</th>
            <td valign="middle"><input type="text" name="client_title1" style="width:140px;">&nbsp;&nbsp;
            <select NAME="client_title2" SIZE=1 style="width:200px;">            
				<?php mysql_query('SET NAMES cp1251');
				$query3 = mysql_query ("select * from `clients` GROUP BY `client_title` ") or die (mysql_error());
				while ($temp3 = mysql_fetch_assoc($query3))	{
					echo "<option value='".$temp3['client_id']."'";
					if ($temp3['client_id'] == $row2['client_id']) {echo " selected";}
					echo ">".$temp3['client_title']."</option>"; 
				}?> 							
            </select>
            </td>
        </tr>
        <tr height="40">
        	<th width="200" align="left" valign="middle"><? echo $order_arr[0]; ?>:</th>
            <td valign="middle"><input type="text" name="order_doc" value="<? echo $row2['order_doc']; ?>" style="width:100px;">&nbsp;&nbsp;&nbsp;<b><? echo $order_arr[1]; ?></b>:&nbsp;&nbsp;&nbsp;
            <input type="text" name="order_cost" value="<? echo $row2['order_cost']; ?>" style="width:184px;"></td>
      </td>
        </tr>
        <tr height="40">
        	<th width="200" align="left" valign="middle"><? echo $order_arr[6]; ?>:</th>
            <td valign="middle"><input type="text" name="side_id" style="width:100%;"></td>
        </tr>
        <tr height="40">
        	<th width="200" align="left" valign="middle"><? echo $order_arr[7]; ?>:</th>
            <td valign="middle"><textarea name="order_comment" cols="4" style="width:100%; font-family: Verdana; font-size:12px;"><? echo $row2['order_comment']; ?></textarea></td>
        </tr>
        <tr>
        	<td></td>
            <td><div align="right"><input type="submit" value="Сохранить"></div><br>
            <div class="div_mess"><? echo $_SESSION['mess']; ?></div></td>
        </tr>        	
        </form>
        
    </table>	
	</div><br>
ну вот страница для которой и писался валидатор который в первом посте темы..
Ответить с цитированием
  #4 (permalink)  
Старый 05.10.2011, 16:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

San4eZ, ты умеешь делать полные тестовые примеры? Или предоставляешь нам возможность побаловаться твоим "лего"?

И это не хтмл-разметка... Это фигня с ПХПшными вставками...

P.S.
Млин, ПХПисты как москвичи, думают что кроме ПХП ничего нет вообще...
Ответить с цитированием
  #5 (permalink)  
Старый 05.10.2011, 16:58
Новичок на форуме
Отправить личное сообщение для San4eZ Посмотреть профиль Найти все сообщения от San4eZ
 
Регистрация: 05.10.2011
Сообщений: 4

по хорошему то тут код то не нужен вообще, мне интересно сфигали такая лабуда идет со скриптами что они то работают то нет
Ответить с цитированием
  #6 (permalink)  
Старый 05.10.2011, 19:03
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

San4eZ,
скрипты либо работаю либо нет, третьего не дано, у браузера нет плохого и хорошего настроения, если идет лабуда значит где-то лажа.
Ответить с цитированием
  #7 (permalink)  
Старый 06.10.2011, 09:13
Новичок на форуме
Отправить личное сообщение для San4eZ Посмотреть профиль Найти все сообщения от San4eZ
 
Регистрация: 05.10.2011
Сообщений: 4

От спасибо то.... Тогда крайний вопрос: Почему скрипт отрабатывает один раз, проверку делает, а потом перестает?
Ответить с цитированием
  #8 (permalink)  
Старый 06.10.2011, 09:17
Аватар для GuardCat
Просто любитель
Отправить личное сообщение для GuardCat Посмотреть профиль Найти все сообщения от GuardCat
 
Регистрация: 13.09.2011
Сообщений: 300

Возможно, проблема решится, если делать так:
function check_form(form4) {
    if (form4.month.value.length <1) {
        alert('Необходимо заполнить поле Месяц!');
        form4.month.focus();
        return false;
    } else if (form4.year.value.length <1) {
        alert('Необходимо заполнить поле Год!');
        form4.year.focus();
        return false;
    } else if (form4.client_title1.value.length <1 || form4.client_title2.selectedIndex == 0) {
        alert('Необходимо заполнить поле Наименование клиента!');
        form4.client_title1.focus();
        return false;
    } else if (form4.order_doc.value.length <1) {
        alert('Необходимо заполнить поле Документ!');
        form4.order_doc.focus();
        return false;
    } else if (form4.order_cost.value.length <1) {
        alert('Необходимо заполнить поле Цена!');
        form4.order_cost.focus();
        return false;
    } else {
        return true;
    }
}
Ответить с цитированием
Ответ



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

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