无法读取表单中输入的值

时间:2011-06-24 08:34:50

标签: java javascript javascript-events serverside-javascript

我是java-script的新手。我正在攻击我的一个应用程序 需要从表单中获取值并对其进行处理:

  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 :(得分:0)

> 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被禁用或不工作,表单将在服务器上提交和更新,并返回更新的表单。如果脚本可用,您可以取消提交并在客户端上进行处理。如果需要,您可以在模糊事件和按钮上进行更新。