Показать сообщение отдельно
  #1 (permalink)  
Старый 27.02.2014, 14:59
BSI BSI вне форума
Аспирант
Отправить личное сообщение для BSI Посмотреть профиль Найти все сообщения от BSI
 
Регистрация: 01.06.2013
Сообщений: 48

Функция на JavaScrept
Написана вот такая функция:

var first=true;
function VerchReg(newsymbol)
{
var re = /[0-9А-Яа-я-" "]/;//Вводятся только цифры,кириллица - и пробел
if (re.test(newsymbol))
{
if (newsymbol==" ")
{
first=true;
return newsymbol;
}
if (first)
{
first=false;
return newsymbol.toUpperCase();
} else
{
return newsymbol;
}
}
else
{
return "";
}
}

взаимодействует вот с этим кодом
<text>Всё сразу в верхний регистр</text>
</value>
</caption>
<event activity="change" name="event__change">
<script contentType="application/x-javascript">
if (xfa.event.newText.length &gt; xfa.event.prevText.length &amp;&amp; xfa.event.change.length == 1)
{
xfa.event.change = xfa.form.topmostSubform.variables.Validation.Verch Reg(xfa.event.change);
}
else
{
xfa.event.change = "";
}
</script>

разрабатывается все в среде LiveDesigner

задача кода - при вводе в поле символов в нижнем регистре в поле сразу на вводе первые символы каждого слова отображаются с заглавной буквы. Пример - вод осуществляется "иванов иван иванович" в поле сразу появляется "Иванов Иван Иванович".
Весь этот код в принципе работает, но есть нюанс. Проблема в том, что если повторно в поле производить редактирование, то есть убрать Иванов Иван Иванович и начать печатать вновь "петров петр петрович" появляется "петров Петр Петрович" это один вариант. Второй - если перезагрузить форму, то все опять работает нормально. И третий вариант - ввели "иван иванович иванов" сразу появляется "Иванов Иван Иванович", возвращаем курсор в начало поля, делаем пробел, опять курсор в начало поля и вводим в нижнем регистре "петров петр петрович" то отображается "Петров Петр Петрович" в итоге в поле "Иванов Иван Иванович Петров Петр Петрович".

В чем проблема? Кто поможет?
Ответить с цитированием