提交按钮的范围和调用函数

时间:2014-01-17 17:54:36

标签: javascript function onclick scope submit

我正在使用的代码很长,所以我会解释我的问题。

我正在使用的代码(粗略地)看起来像这样:

<html><HEAD><meta http-equiv='Cache-control' content='no-cache'><meta http-      equiv='Expires' content='-1'>
<script>
function sendRequestXML()
{
  function asgn()
  {
    alert("!");
  }
document.write("<input type='submit' value='Submit Survey' onclick='asgn()' />
</script>
<body onload="sendRequestXML()">
<h4><u>EAM fetching data....</u></h4>
</body>
</html>

我遇到的问题是我无法使用onclick按钮调用asgn函数。我认为这与它超出按钮的范围有关。我一直得到的错误是“asgn未定义或不是函数对象”。如何使按钮和功能在同一范围内?

2 个答案:

答案 0 :(得分:0)

尝试:

<script>
  window.asgn = function() {
    alert("!")
  }
</script>

这将使该功能在全球范围内可用。

更好的选择(因为它不需要'onclick = ...')将是:

<script>
  document.querySelector("submit").addEventListener("click", function() {
    alert("!")
  });
</script>

答案 1 :(得分:0)

我认为你的代码应该是这样的按钮才能工作

<html><HEAD><meta http-equiv='Cache-control' content='no-cache'><meta http-      equiv='Expires' content='-1'>
<script>
function sendRequestXML()
{


document.write("<input type='submit' value='Submit Survey' onclick='asgn()' />");
}

function asgn()
  {
    alert("!");
  }
</script>
<body onload="sendRequestXML()">
<h4><u>EAM fetching data....</u></h4>
</body>
</html>