Javascript document.getElementById返回空

Javascript document.getElementById返回空,javascript,Javascript,我有一个表单需要在其他页面中继续,当我尝试获取输入值时,js不会返回任何内容 表格: <form id="myf" name="myf" method="POST" action="folder/nextstep.php"> <label for="place">Name: </label> <input id="place" name="place" type="text" onkeyup="getfind('result_place

我有一个表单需要在其他页面中继续,当我尝试获取输入值时,js不会返回任何内容

表格:

<form id="myf" name="myf" method="POST" action="folder/nextstep.php">

    <label for="place">Name: </label>
    <input id="place" name="place" type="text" onkeyup="getfind('result_place','folder/nextstep.php','place');"><br>
    <div id="result_place"></div>

    <script type="text/javascript"> 
        var values = new Array();
        values[0] = new Array();
        values[0][0] = "place";
        values[0][1] = document.getElementById("place").value;
    </script>

    <input id="submit" name="submit" type="button" onclick="getfind('folder/nextstep.php',values);" value="Add">
</form>
但请注意如下事项:

位置=&input2=&和

并且值是空的!
为什么?

加载页面时,您正在初始化

如果要使用输入的当前内容,则需要在单击时执行此操作

最简单的选择可能是将其放入函数中:

function getvalues()
{
    var values = new Array();
    values[0] = new Array();
    values[0][0] = "place";
    values[0][1] = document.getElementById("place").value;
    return values;
}
然后使用
getvalues()
,而不是
values


问题很可能是调用函数时没有得到值。在输入任何内容之前,将对尝试获取它们的代码进行求值。如果将该部分嵌入到getfind()函数中,它应该可以工作

var values = new Array();
values[0] = new Array();
values[0][0] = "place";


function getfind() {

    var xmlobj = ajax();
    if (arguments.length == 3) {
          //something here
    } else if (arguments.length == 2) {

        var thepage = arguments[0];
        var thevalues = arguments[1];

        var theparam = "";

        for (var i = 0; i < values.length; i++) {
            // get latest values
            thevalues[i][1] = document.getElementById(thevalues[i][0]).value;
            theparam += thevalues[i][0] + "=" + thevalues[i][1] + "&";
            alert(theparam);
        }
var值=新数组();
值[0]=新数组();
值[0][0]=“位置”;
函数getfind(){
var xmlobj=ajax();
if(arguments.length==3){
//这里有东西
}else if(arguments.length==2){
var thepage=参数[0];
var thevalues=参数[1];
var theparam=“”;
对于(变量i=0;i
执行脚本时,元素
place
元素似乎未就绪。 把你的代码放进去

window.onload=function(){
//your code here
}
你的代码应该是

<script type="text/javascript"> 
window.onload=function(){
     var values = new Array();
     values[0] = new Array();
     values[0][0] = "place";
     values[0][1] = document.getElementById("place").value;
}       
</script>

window.onload=function(){
var值=新数组();
值[0]=新数组();
值[0][0]=“位置”;
值[0][1]=document.getElementById(“place”).value;
}       

length是一个以1为基数的整数,看起来您是在以0为基数进行测试?即您有3个参数,而3个参数的代码部分是空的?我的第一个猜测。您也在加载时设置var值,但我在文本entrytnx上看不到任何更新,所有答案都正确:)现在,我使用这个:函数getvalues(){values=[[“教育地点”,document.getElementById(“教育地点”).value],“教育程度”,document.getElementById(“教育程度”).value],“教育字段”,document.getElementById(“教育字段”).value],“教育描述”,document.getElementById(“教育描述”).value],“教育日期”,document.getElementById(“教育日期”),“教育日期”,document.getElementById(“edu_outdate”).value]];返回值;}
window.onload=function(){
//your code here
}
<script type="text/javascript"> 
window.onload=function(){
     var values = new Array();
     values[0] = new Array();
     values[0][0] = "place";
     values[0][1] = document.getElementById("place").value;
}       
</script>