document.getElementById返回空

时间:2014-08-02 13:14:09

标签: 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','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>

和其他文件:

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 in thevalues) {
            theparam += thevalues[i][0] + "=" + thevalues[i][1] + "&";
            alert(theparam);
        }

但请注意这样的事情:

地方=安培;输入2 =&安培;和......

并且值为空! 为什么呢?

3 个答案:

答案 0 :(得分:0)

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

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

最简单的选择可能是把它放在一个函数中:

function getvalues()
{
    var values = new Array();
    values[0] = new Array();
    values[0][0] = "place";
    values[0][1] = document.getElementById("place").value;
    return values;
}

然后使用values代替getvalues()

onclick="getfind('folder/nextstep.php',getvalues());"

答案 1 :(得分:0)

问题很可能是在调用函数时没有获取值。在输入任何内容之前,将评估尝试获取它们的代码。如果将该部分嵌入到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);
        }

答案 2 :(得分:0)

执行脚本时,似乎元素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>