Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Организация работы JS скрипта (https://javascript.ru/forum/dom-window/26615-organizaciya-raboty-js-skripta.html)

djsadd 14.03.2012 22:33

Организация работы JS скрипта
 
Вопрос такой, имеются два поля с уже внесенными но не достаточными данными:

1.Полное наименование * [Общество с ограниченной ответственностью «»]
2.Сокращенное наименование * [ООО «»]

Задача заключается в том, что бы при нажатии на первое поле внести некоторую текстовую информацию и эту инфу соответственно проверить на правильный ввод (думаю с такими ограничениями [0-9_;:'!~?=+<|>]).
Но если на поле нажали но ни чего не ввели и нажали в другое место формы например на следующее поле или вообще мимо этих полей появилось примечание красным цветом под первым полем:(Поле должно содержать организационно-правовую форму и наименование в кавычках на русском языке.)

Помогите пожалуйста, как это реализовать не пойму.

И еще хочу прикрутить не большую штуку не знаю как ее сделать. Т.е. если я ввожу в первое поле инфу только между кавычек то во втором поле между кавычек должно появиться тоже самое что я написал в первом поле.

Всем откликнувшимся большое спасибо.

T-sh 15.03.2012 07:50

ну, это вам уже готовый скрипт нужен, т.е. работа :) а такое бесплатно здесь не делают :)

в общем, делается это так:

1. по onBlur — потеря фокуса, т.е на поле нажали и потом нажали в другом месте, взять значение (value) поля и проверить его:
а) если оно равно "Общество с ограниченной ответственностью «»", то рядом с полем сделать видимым <span>Примечание....</span>.
б) иначе, если оно не соответствует шаблону "[0-9_;:'!~?=+<|>], то сделать видимым <span>Неправильно заполнено...</span>
в) иначе — всё ok.

Вторая часть:
Если проверки в первой части дали нам "всё ok", то взять значение первого поля (строка), обрезать её до первых кавычек, и после последних кавычек. В значение второго поля после первых кавычек добавить полученную из значения первого поля строку.

Работа на полчаса.
План теперь у вас есть, беритесь :) Что будет не получаться — подскажем и поможем.

djsadd 15.03.2012 09:39

Большое спасибо. я написал простой скрипт работающий по нажатию по кнопке. Но его нужно дополнить, но что то не не как не могу придумать как. От функции потери фокуса отказался т.к. не пойму как реализовать).
Хочу реализовать:

1. Нужно чтобы соответствующее замечание появлялось под соответствующим полем (Понял что за это отвечает это: <p class="red" id="alert"></p>). Но как изменить скрипт не знаю.

2. Не разберусь как отрезать часть текста до первых кавычек и как с одного поля вставить в другое поле. Нужен дополнительный скрипт или же можно реализовать в одном?

Спасибо большоеееЙ!!

<form action="http://localhost/anketa.php" method="post" name="preview">
<div class="form">
<p>Полное наименование <font color='red'>*</font> <input name="Polnoe_naimenovanie" type="text" value="Общество с ограниченной ответственностью «»" size=60 /></p>
<p class="red" id="alert"></p>
<p>Сокращенное наименование <font color='red'>*</font> <input type="text" name="Sakrachennoe_naimenovanie" size=20 value="ООО «»" /></p>	
<font color='red'>*</font>-поля обязательные для заполнения</p>
</div>
<center>

<input type="button" value="Создать" onclick="checkForm()" />

<script type="text/javascript">
function text (str) { return /[0-9_;:'!~?=+<|>]/g.test(str); }
function checkForm () 
      {
      var title;
      var elem;
      var OneField = "<font color='red'>Поле должно содержать организационно-правовую форму и наименование в кавычках на русском языке.<br> Например: Общество с ограниченной ответственностью «МИП»</font>";
      var TwoField = "<font color='red'>Поле должно содержать аббревиатуру ООО и сокращенное наименование в кавычках на русском языке.<br> Например: ООО «МИП»</font>";
      var check = true;

      function checkError (field, str) 
         {
         document.getElementById("alert").innerHTML = str;
         document.forms.preview.field.focus();
         check = false;
         }

      document.getElementById("alert").innerHTML = "";

      if (check)
         {
         elem = document.preview.Polnoe_naimenovanie.value;
         if (elem.length == 43) checkError('Polnoe_naimenovanie', OneField);
		 else if (text(elem)) checkError('Polnoe_naimenovanie', OneField);
         }

if (check)
         {
         elem = document.preview.Sakrachennoe_naimenovanie.value;
         if (elem.length == 6) checkError('Sakrachennoe_naimenovanie', TwoField);
		 else if (text(elem)) checkError('Sakrachennoe_naimenovanie', TwoField);
         }
   
         
if (check)  { document.preview.submit(); }

      return check;
      }
</script>
</body>
</html>

djsadd 18.03.2012 00:17

Люди, помогите кто-нибудь!?


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