Javascript不能在一个命令中使用函数参数

Javascript cannot use function argument in one command

本文关键字:命令 参数 函数 一个 不能 Javascript      更新时间:2023-09-26

我有一个表单(在ColdFusion程序中——这并不重要),它有两个提交按钮(它们看起来很不一样),根据单击的按钮提交到不同的程序。表单如下:

    <form   name       = "pers3aa"
            action     = "" 
            method     = "post" 
            onkeypress = "return event.keyCode != 13;"
            onsubmit   = "return subpers3aa('#coltop#');"> 

每个按钮都调用一个Javascript函数来设置操作——它们看起来像这样:

   <input type   = "Submit"
          name   = "subpers4" 
          class  = "submitbut" 
          value  = "Submit" 
      onclick = "persaasubmit('person4aa.cfm')" >

   <input type   = "Submit"
          id     = "delbut" 
          class  = "onoffbut" 
          value  = "Delete this Value"
      onclick = "persaasubmit('persdel.cfm')">

javascript函数persaasubmit是:

   function persaasubmit(target) {
   document.pers3aa.action = target;
   }//end function persaasubmit

到目前为止,效果很好。然而,在另一个程序中,我有一个不同的形式"xreform",我提交了一个类似的功能:

  function aasubmit(target) {
  document.xrefform.action = target;
  }//end function aasubmit

这种情况在我的整个系统中都会发生,各种javascript提交功能正在激增。因此,我试图通过发送表单名称作为参数来组合它们:

 function generalsubmit(formname, target) {
  document.formname.action = target;
  }//end function generalsubmit

这不起作用。我推断Javascript找不到一个名为"formname"的表单,所以它不会提交任何内容。我想可能有语法可以让Javascript提交传递给它的表单名,但我不知道那可能是什么。有人能帮忙吗?

在对象文档中有一个'forms'数组。您可以访问特定的表格:

document.forms['myform']

你走在了正确的轨道上;然而,点表示法在JavaScript中并不是这样工作的。

考虑一下:

var someVar = "Foo Bar",
    someObject = { someVar: someVar };
//  someObject = {"someVar": "Foo Bar"}
someObject[someVar] == undefined
// Resolves to the 'Foo Bar' property in someObject
someObject.someVar == 'Foo Bar'
// Resolves to the 'someVar' property in someObject
someObject['someVar'] = 'Foo Bar'
// Resolves to t 'someVar' property in someObject

这应该是您问题中功能的替代品:

function generalsubmit(form, target) {
    form = document.forms[form];
    if (form) {
        form.target = target;  
    }
}