js将表单值调用为变量

时间:2011-07-07 23:35:50

标签: javascript forms dom variables attributes

好的无关紧要的问题。但是让我筋疲力尽。

我在函数中使用Js脚本声明隐藏表单字段的值。

e.g。这些只是实例而非真实的脚本。

function myFunction(){
    var text = "hello world";
    var number = 12345;



    document.getElementById('text').value= text; 
    document.getElementById('number').value= number; 

  }

然后我希望能够将表单值的值用作另一个脚本中的变量。我意识到可以选择全局声明这些变量。但是我听说它不那么安全。或者像我要的那样精简。

第二个脚本示例......

    var autoText = document.getElementById('text').value;
    var autoNumber = document.getElementById('number').value;

    ...do stuff with variables.

但是这不起作用并返回undefined。这是访问我的表单字段值的正确DOM路径还是我需要查找属性及其子项?

我还有哪些其他选择?

感谢您的时间。 HTML是......

  <form action="http://mysite/mypath" method="post">

  <input type="text" name="text" id="text" value="">
  <input type="text" name="text" id="number" value="">
  <input type= "submit" name="go" value="go" allign="middle"/>
  </form> 

3 个答案:

答案 0 :(得分:1)

这应该没问题,假设你有正确的ID设置为你想要的元素。请记住,该ID必须是唯一的,否则会出现不可预测的问题。

确保在加载DOM后运行代码。否则该元素可能尚未存在于DOM中,因此document.getElementById方法将无法找到它。

答案 1 :(得分:0)

或者,您可以将该数据存储在闭包中,以便两个函数都可以访问该变量,但它不会存储在全局范围内。像这样:

(function(){
  var text = "blah blah",
      number = 12345;

  function insertValues() {
    document.getElementById('text').value= text; 
    document.getElementById('number').value= number; 
  }
  function otherStuffWithValues() {
    alert(text);
    alert(number);
  }
  insertValues();
  otherStuffWithValues();
}())

另外,您还可以在第一个函数中声明变量,然后将变量作为参数传递给第二个函数,如下所示:

function insertValues() {
  var text = "blah blah",
      number = 12345;
  document.getElementById('text').value= text; 
  document.getElementById('number').value= number;
  otherstuff(text,number)
}

function otherstuff(sometext,somenumber) {
  alert(sometext);
  alert(somenumber);
}
insertValues()

答案 2 :(得分:-1)

我认为您在页面加载时没有设置启动脚本。如果是这样,您可以使用这个简单的事件处理程序:

window.onload = myFunction;

myFunction将与你的代码一起使用。