문제

I want to get all inputs from my website and show them in alert message.
However, it seems this script isn't working correctly and only shows the first input element.

What should I do?

function dotest() {
    var inputs = document.getElementsByTagName("input");
    if (inputs.length > 0) {
        var s = document.URL + "\n";
        s += "-- Inputs list start --\n";
        for (var i = 0; i < inputs.length; i++) {
            var inputdata = inputs[i];
                var imputdatas = null;
                imputdatas += inputdata.name + ",";
                imputdatas += inputdata.id + ",";
                imputdatas += inputdata.type + ",";
                imputdatas += inputdata.value + "\n";
        }
        s += imputdatas;
        s += "-- End -\n\n";
    }
    if (s) {
        alert(s);
    }
}
dotest();
도움이 되었습니까?

해결책

Add them all to s inside the loop, not after the loop

function dotest() {
    var inputs = document.getElementsByTagName("input");
    if (inputs.length > 0) {
        var s = document.URL + "\n";
        s += "-- Inputs list start --\n";
        for (var i = 0; i < inputs.length; i++) {
            var inputdata = inputs[i];
            var imputdatas = '';
                imputdatas += inputdata.name + ",";
                imputdatas += inputdata.id + ",";
                imputdatas += inputdata.type + ",";
                imputdatas += inputdata.value + "\n";
            s += imputdatas;
        //  ^^^ needs to be here
        }
        s += "-- End -\n\n";
    }
    if (s) {
        alert(s);
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top