好的无关紧要的问题。但是让我筋疲力尽。
我在函数中使用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>
答案 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将与你的代码一起使用。