为什么这可以在Chrome中运行而不是Firefox?

时间:2012-02-24 17:37:14

标签: javascript firefox google-chrome

function fill (colname) {
    var numRows, i, toCopy, iterated_name;

    numRows = document.getElementById('malesTable').rows.length + document.getElementById('femalesTable').rows.length - 2;
    //gets number of rows, subtracts two for header rows(male and female)
    toCopy = document.getElementById(colname.id).value;
    i = 1;
    //iterate over id's and input values
    for (i; i <= numRows; i++){
    iterated_name = colname.id + "_" + i;
    document.getElementById(iterated_name).value = toCopy;
    }
}

它可以在chrome中自动填充许多字段,但它不在Firefox中。为什么呢?

为了澄清何时将输入放入自动填充框,它不会按预期复制字段。

这是jsfiddle

http://jsfiddle.net/hopup/tfEQM

1 个答案:

答案 0 :(得分:1)

执行此操作时:

fill(external_id);

你在Firefox中传递未定义但传入Chrome中的元素,因为Chrome会使所有带ID的元素污染全局范围。

大概你的意思是fill(document.getElementById("external_id"))