Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужна помощь в завершении скрипта - если конечно не трудно. (https://javascript.ru/forum/misc/2000-nuzhna-pomoshh-v-zavershenii-skripta-esli-konechno-ne-trudno.html)

Rush 17.10.2008 17:05

Нужна помощь в завершении скрипта - если конечно не трудно.
 
У меня есть Вот такой скрипт: Помогите его закончить мне необходимо сделать так чтоб выводились ошибки на страницу если пользователь неправельно ввел данные в форму, проверки я сделал, но не получается выводить ошибки (необходимо примерно так: Ошибка: Вы ввели неправельные данные в поле Период или Вы ввели неправельные данные в поле Начальные показания) Период и начальные показания это Названия полей в скрипте это period и sch1.

<html>
<head>
<title></title>
<META HTTP-EQUIV="Content-Type" charset="windows-1251">
<LINK REL="StyleSheet" HREF="css/platdog.css" TYPE="text/css">
</head>
<body>


	<table style="color:#00000;" width="100%"; border="0">
<tr>
<td colspan="2">
   <div style="height:100%; width:100%; border:1 solid #000000;">

<script>

    function proverka()
    {
      var counterr=0;
      var err0=false;
      var err1=false;
      var err2=false;
      var err3=false;
      var err4=false;

   //   var name = new Array("Период","Начальные показания","Конечные показания","Количество","Сумма");

      // Проверка введенного периода
      var strperiod = forma.period.value;
      var i;
      if (i=strperiod.search(/^([0][1-9]|1[0-2]).[0-9]{2}$/) == -1)
      {
      document.getElementById('err1').innerHTML="<p>Ошибка: Неверный период.</p>";
      counterr++;
      err0=true;
      }
      else
      {
      document.getElementById('err1').innerHTML="";
      }

      // Проверка введенного sch1
      var strsch1 = forma.sch1.value;
      var i1;
      if (i1=strsch1.search(/^[0-9]{0,6}$/) == -1)
      {
      document.getElementById('err2').innerHTML="<p>Ошибка: Неверные начальные показания</p>";
      counterr++;
      err1=true;
      }
      else
      {
      document.getElementById('err2').innerHTML="";
      }

      // Проверка введенного sch2
      var strsch2 = forma.sch2.value;
      var i2;
      if (i2=strsch2.search(/^[0-9]{0,6}$/) == -1)
      {
      document.getElementById('err3').innerHTML="<p>Ошибка: Неверные конечные показания</p>";
      counterr++;
      err2=true;
      }
      else
      {
      document.getElementById('err3').innerHTML="";
      }
      // Проверка введенного kub
      var strkub = forma.kub.value;
      var i3;
      if (i3=strkub.search(/^[0-9]{0,6}$/) == -1)
      {
      document.getElementById('err4').innerHTML="<p>Ошибка: Неверные количество кубов</p>";
      counterr++;
      err3=true;
      }
      else
      {
      document.getElementById('err4').innerHTML="";
      }
      // Проверка введенного sum
      var strsum = forma.sum.value;
      var i4;
      if (i4=strsum.search(/^([0-9]){1,5}$/) == -1)
      {
      document.getElementById('err5').innerHTML="<p>Ошибка: Неверная сумма</p>";
      counterr++;
      err4=true;
      }
      else
      {
      document.getElementById('err5').innerHTML="";
      }

    if (counterr>0)
    {
      return false;
    }
    else
    {
      return true;
    }


    }
</script>

<form method="post" name="forma" id="forma" action="test.php" onsubmit="return proverka()"   >

<table  border="0" height="100%" width="100%" class="table">
<tr>
<td rowspan="2">
<div class="table" >
<table border="0"  width="100%" height="100%" >
<tr>
<td class="text"><span>Организация</span></td>
<td style="padding-left:50px;">
<select name="org">
<option value="0"> --------- Выберите организацию --------- </option>
</select>
</td>
</tr>
<tr>
<td class="text"><span>Начальные показания</span></td>
<td class="text2"><input type="text"  class="input"  maxlength="5" name="sch1"  id="sch1"/></td>
</tr>
<tr>
<td class="text"><span>Количество кубов</span></td>
<td class="text2"><input type="text" class="input" maxlength="5" name="kub" id="kub" /></td>
</tr>
<tr>
<td class="text"><span>Конечные показания</span></td>
<td class="text2"><input type="text" class="input" maxlength="5" name="sch2"  id="sch2"/></td>
</tr>
<tr>
<td class="text"><span>Период</span></td>
<td class="text2"><input type="text" class="input" name="period" id="period"/></td>
</tr>
<tr>
<td class="text"><span>Сумма платежа</span></td>
<td class="text2"><input type="text" class="input" name="sum" /></td>
</tr>

</table>
</div>
</td>
<td rowspan="2" width="160px">
<center>
<div style="margin-bottom:160px;"><br>
   <input type="submit" name="sub_dog" value=" Оплатить " /><br><br><input type="reset" name="reset" value=" Очистить  " />
</div>
</td>
</tr>
</table>
</form>
   </div>
 <div id="err1" style="color:red; font-weight:bold;"></div>
 <div id="err2" style="color:red; font-weight:bold;"></div>
 <div id="err3" style="color:red; font-weight:bold;"></div>
 <div id="err4" style="color:red; font-weight:bold;"></div>
 <div id="err5" style="color:red; font-weight:bold;"></div>
</td>
</tr>
</table>

</body>
</html>

Rush 17.10.2008 17:09

Ошибки необходимо выводить на страницу!

Snipe 17.10.2008 21:01

А что конкретно не получается?
Запускали в мозиле с firebug'ом? Что пишет firebug?

Rush 18.10.2008 09:56

Сейчас в скрипте у меня ошибки выводятся в div я мне хотелось бы чтоб ошибки выводились динамически, а не в отдельно отведенный div для этой ошибки! Просто допустим если у меня ошибка будет допушена в начальных показания и с periode то эти ошибки будут выводится примерно так:


ошибка1: текст ошибки




ошибка2: текст ошибки

Необходимо чтоб выводилось без пропусков

twolf 18.10.2008 10:49

Все в принципе у Вас правильно. Видимо вы хотите чтобы ошибки выводились сразу, при вводе.
Вот принцип как это осущствить. Вы легко разберетесь.
<html>
<head>
<title></title>
<META HTTP-EQUIV="Content-Type" charset="windows-1251">
<style>
.text {width: 100px}
.text2 input,div {float: left}
#err2 {color: red}
</style>
</head>
<body>
 
<script>    
      function testpokazaniya(il){
      if (il.search(/^[0-9]{0,6}$/) == -1)
      {
      document.getElementById('err2').innerHTML="Ошибка: Неверные начальные показания";
      }
      else
      {
      document.getElementById('err2').innerHTML="Введено верно";
      }
      }    
</script>
<table border="1"  width="100%"  >
 <tr>
  <td class="text"><span>Начальные показания</span></td>
  <td class="text2">
    <input type="text" class="input" maxlength="5" id="sch1" onkeyup="testpokazaniya(this.value)" /><div id="err2"></div>
  </td>
 </tr>
</table>
 
</body>
</html>


Еще хочу кое-что заметить не каающееся js.
- проверку также производите и на строне сервера, потому как злоумышленник может легко обойти проверки js.
- не используйте style=".....", или <style></style> Всё выносите в отдельный css файл. border="0" width="100%" и т.д. тоже не должно быть.
- js код также выносите в отдельный js файл.

Rush 18.10.2008 10:58

Большое спасибо это мне очень поможет

Rush 18.10.2008 11:05

Скажите а Вы не знаете как например сделать такой вывод ошибок как на этом форуме, например когда добавляешь новую тему и не ввел буквы с картинки??

twolf 18.10.2008 11:12

а можно поподробней. я чего-то не нашел картинок. :)

Rush 18.10.2008 11:22

я имею ввиду код который на картинке его ещевводить надо в поле

Rush 18.10.2008 11:25

вообщем если есть ошибка то в структуру страници добавляется таблица в которой выводится ошибка


Часовой пояс GMT +3, время: 09:30.