Не в состоянии прочитать значение, введенное в форму - PullRequest
0 голосов
/ 24 июня 2011

Я новичок в java-скрипте.Я взламываю одно приложение, в котором мне нужно получить значения из формы и выполнить ее обработку:

  icode=document.forms[0].intcode;
        lamt=document.forms[0].lnamt.value;
        nom =document.forms[0].nomon.value;

и обновить значения в других полях формы в зависимости от трех указанных выше значений, например:

document.forms[0].monpmt.value=Math.round(mamt);
            document.forms[0].totamt.value=totamt;

Примечание: эти значения должны автоматически появляться в форме в зависимости от трех указанных выше значений, введенных пользователем.

Я делаю это на платформе Linux и tomcat.

1 Ответ

0 голосов
/ 24 июня 2011
> icode=document.forms[0].intcode;
> lamt=document.forms[0].lnamt.value;
> nom =document.forms[0].nomon.value;

Переменные должны быть объявлены с var , чтобы они оставались локальными (при условии, что вышеизложенное предназначено для использования в функции). Синтаксис более или менее правильный, он предлагает структуру HTML, такую ​​как:

<form ...>
  <input name="intcode" ... >
  <input name="lnamt" ... >
  <input name="nomon" ... >
  ...
  <input name="monpmt" ...>
  <input name="totamt" ...>
</form>

Таким образом, если в форме есть кнопка, которая запускает функцию для получения некоторых значений и обновления значения какого-либо другого элемента управления, она может выглядеть следующим образом:

  <input type="button" onclick="updateForm(this);" ...>

и функция обновления может выглядеть следующим образом:

function updateForm(el) {
  var form = el.form; // store a reference to the form
  var icode = document.forms[0].intcode; // reference to element named "intcode"

  // Get the value of some controls
  var lamt = document.forms[0].lnamt.value;
  var nom = document.forms[0].nomon.value;

  // Do something with the values
  var mamt = ...;
  ...
  var totamt = ...;

  // Set some values in the form
  // Have a reference to the form so use it
  form.monpmt.value = Math.round(mamt);
  form.totamt.value = totamt;
}

Обратите внимание, что значения элемента управления формы всегда являются строками, и вам следует проверить полученные значения, чтобы убедиться, что они соответствуют вашим ожиданиям. Если вы хотите обновить значения без нажатия пользователем кнопки [1], вы можете использовать событие blur для вызова updateForm .

Вам потребуется проверка входных значений и устранение ошибок (обновления до того, как пользователь заполнит все поля, и недопустимые данные являются очевидными). Также вам, вероятно, захочется отформатировать данные при их возврате, например, отформатировать числа в два десятичных знака.

  1. Лучше всего использовать кнопку, так как она может быть кнопкой отправки, поэтому, если javascript отключен или не работает, форма отправляется и обновляется на сервере, а обновленная форма возвращается. Если сценарии доступны, вы можете отменить отправку и выполнить обработку на клиенте. Вы можете получить обновление события размытия и кнопку, если хотите.
...