eventListener的JavaScript错误

时间:2015-03-27 01:19:59

标签: javascript html

我收到一个错误,我不确定该怎么做。无论如何,在我继续之前,我发现了一些不引人注目的JavaScript,起初我只想添加一个" OnClick"到我的HTML,但后来发现这不是一件好事。

无论如何,所以我这样做了,并且看到了这个尚未完成的代码,但我想在我进去之前尝试一下并做出任何其他更改。

    window.onload = function findSubmitButton(){
    var button = document.getElementsByClass("send_info").addEventListener("click", retrieveInputText());
}   

function retrieveInputText(){
    var inputArray = document.querySelectorAll("#container_id input[type=text]");
    var finalArray;
    for (var i in inputArray){
        if(inputArray[i].type == "text"){
            finalArray.push(i);
        }
    alert("done");
    }
}

错误chrome的控制台给我的是:Uncaught TypeError: undefined is not a functionfindInputs.js:5 findSubmitButton

还有一些我想知道的东西,我希望能够将此脚本与任何其他类型的输入形式一起使用,因此我不是直接识别此页面的按钮,而是使用了类标识符,这样,它适用于任何页面。唯一可能出现问题的方法是,如果我有两个按钮,就像现在一样,任何具有这种信息的页面只有一个按钮用于此类程序。如果有人帮我解决这个问题,我会很感激,我是JavaScript的新手。

1 个答案:

答案 0 :(得分:0)

getElementsByClassName(),返回一个数组,而不是一个元素,因此它没有addEventListener方法,你还需要传递函数引用

window.onload = function findSubmitButton() {
    var button = document.getElementsByClassName("send_info")[0].addEventListener("click", retrieveInputText);
}

您还需要初始化数组var finalArray = [];


window.onload = function findSubmitButton() {
    var button = document.querySelector(".send_info").addEventListener("click", retrieveInputText);
}

function retrieveInputText() {
    var inputArray = document.querySelectorAll("#container_id input[type=text]");
    var finalArray = [];
    for (var i in inputArray) {
        if (inputArray[i].type == "text") {
            finalArray.push(i);
        }
    }
    alert("done:" + finalArray);
}

演示:Fiddle