Синхронное отображение результата преобразования данных одного поля в другом поле

Статус
Закрыто для дальнейших ответов.

bsi

Участник
Топикстартер
Сообщения
60
Реакции
6
Привет форумчане.
Проблема в следующем:
- в поле "Число" вводим какую-то сумму, а в поле "Пропись" должна синхронно отображаться сумма прописью (у меня это реализовано, но сумма прописью появляется только после потери фокуса полем "Число";

- аналогично в поле "Все в верхний регистр" вводим ИВАНОВ ИВАН ИВАНОВИЧ (ввод произвожу в нижнем регистре при вводе они сразу преобразуются в заглавные), а в поле "Подпись" должно синхронно появляться Иванов И. И. (это тоже реализовано, но после потери фокуса полем "Все в верхний регистр")

- в поле "все первые большие" ввожу в нижнем регистре иванов и. и. после потери фокуса получаю Иванов И. И. (это тоже реализовано, но после потери полем фокуса, а надо сразу на вводе).

Я не специалист в программировании, но Вы мне ранее так все толково объяснили и у меня все получилось. Прошу помощи.

Форма во вложении разработана в LiveCycle Designer.
Код формы во вложении.
 

Вложения

  • Форма.rar
    267.4 КБ · Просм.: 392
  • Код формы.rar
    69.7 КБ · Просм.: 542

qsedftghk

фея
15 лет на форуме
Сообщения
2 033
Реакции
1 200
Если я правильно понял (читал быстро) событийную модель акробата - сразу при вводе инфы в поле А, инфа в поле В отображаться не будет. Событие changed не работает у текстовых полей, а только у drop-down lists или list boxes.
 

bsi

Участник
Топикстартер
Сообщения
60
Реакции
6
Форма во вложении разработана в LiveCycle Designer ! Там мне кажется это можно решить через
Код:
<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.VerchReg(xfa.event.change);
}
else
{
    xfa.event.change = "";
}
</script>
function VerchReg(newsymbol)
{
  
    var re = /[0-9А-Яа-я-" "]/;//Вводятся только кириллица, - и пробел
    if (re.test(newsymbol))
    {
        return newsymbol.toUpperCase();
    }
    else
    {
        return "";
    }   
}
как-то переработав и прибавив код
var str = rawValue;
var FIO = str.split (' ');
var a = FIO.length
switch (a) {
case 2:{
    FIO [0] = FIO [0].charAt (0).toUpperCase () + FIO [0].substr (1);
    FIO [1] = FIO [1].charAt (0).toUpperCase () + FIO [1].substr (1);
  rawValue = FIO.join (' ');
    FIO [0] = FIO [0].charAt (0) + FIO [0].substr (1).toLowerCase();
    FIO [1] = FIO [1].charAt (0) + '.';
this.resolveNode("Podpis").rawValue = FIO.join (' ');
       break;
}
     case 3:{
        FIO [0] = FIO [0].charAt (0).toUpperCase () + FIO [0].substr (1);
        FIO [1] = FIO [1].charAt (0).toUpperCase () + FIO [1].substr (1);
        FIO [2] = FIO [2].charAt (0).toUpperCase () + FIO [2].substr (1);
   rawValue = FIO.join (' ');
        FIO [0] = FIO [0].charAt (0) + FIO [0].substr (1).toLowerCase();
        FIO [1] = FIO [1].charAt (0) + '.';
        FIO [2] = FIO [2].charAt (0) + '.';
   this.resolveNode("Podpis").rawValue = FIO.join (' ');
        break;
}
case 4:{
        FIO [0] = FIO [0].charAt (0).toUpperCase () + FIO [0].substr (1);
        FIO [1] = FIO [1].charAt (0).toUpperCase () + FIO [1].substr (1);
        FIO [2] = FIO [2].charAt (0).toUpperCase () + FIO [2].substr (1);
        FIO [3] = FIO [3].charAt (0) + FIO [3].substr (1);
    rawValue = FIO.join (' ');
        FIO [0] = FIO [0].charAt (0) + FIO [0].substr (1).toLowerCase();
        FIO [1] = FIO [1].charAt (0) + '.';
        FIO [2] = FIO [2].charAt (0) + '.';
        FIO [3] = "";
  this.resolveNode("Podpis").rawValue = FIO.join (' ');
        break;
}
  default:
    rawValue = str; 
   this.resolveNode("Podpis").rawValue = FIO [0].charAt (0).toUpperCase () +  FIO [0].substr (1) + " " + FIO [1].charAt (0).toUpperCase () + '.' + " " + FIO [2].charAt (0).toUpperCase () + '.';
}
 
Последнее редактирование модератором:
Статус
Закрыто для дальнейших ответов.