Странно себя ведет простейшая проверка введенных данных в форме
Товарищи, мой мозг просто взрывается... Суть проблемы:
Есть система управления конструкциями, сделана в виде веб-приложения, написана на пхп, но не это главное. В системе несколько форм вывода, редактирования и добавления информации в БД. Возникла необходимость написать простейшую проверку на корректность введенных данных. Поскольку формы однотипные то приведу один пример кода: 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; } } Проблема в том что валидация работает через пень-колоду, то есть допустим вчера вечером все прекрасно отрабатывает, сегодня утром уже не работает(причем на одной форме работает, на второй нет, на третьей опять все в норме), и это при том что код никто не правил и даже не смотрел на него(и на пхп-шный в том числе). Почему такое может происходить? |
Цитата:
Полного тестового примера нет. Перечня ошибок нет. Оплата так же молчёк... :D |
а что не так может быть в хтмл разметке?
<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;"> <b><? echo $order_arr[4]; ?></b>: <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;"> <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;"> <b><? echo $order_arr[1]; ?></b>: <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>ну вот страница для которой и писался валидатор который в первом посте темы.. |
San4eZ, ты умеешь делать полные тестовые примеры? :) Или предоставляешь нам возможность побаловаться твоим "лего"?
И это не хтмл-разметка... Это фигня с ПХПшными вставками... P.S. Млин, ПХПисты как москвичи, думают что кроме ПХП ничего нет вообще... |
по хорошему то тут код то не нужен вообще, мне интересно сфигали такая лабуда идет со скриптами что они то работают то нет
|
San4eZ,
скрипты либо работаю либо нет, третьего не дано, у браузера нет плохого и хорошего настроения, если идет лабуда значит где-то лажа. |
От спасибо то.... Тогда крайний вопрос: Почему скрипт отрабатывает один раз, проверку делает, а потом перестает?
|
Возможно, проблема решится, если делать так:
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; } } |
Часовой пояс GMT +3, время: 03:01. |