0

我使用以下 javascript 函数来捕获为表单中每个元素输入的值。一旦用户单击提交按钮,必须显示用户为每个控件输入的值。该代码适用于除单选按钮之外的所有控件。谁能建议我怎么做?

function DisplayFormValues(){
            var str = '';
            var elem = document.getElementById('form1').elements;
            for(var i = 0; i < elem.length; i++)
            {

                str += "<b>Name:</b>" + elem[i].name + "\n";
                str += "<b>Value:</b><i>" + elem[i].value + "\n";
                str += "<BR>";
            } 
            document.getElementById('lblValues').innerHTML = str;
        }
4

1 回答 1

1

单选按钮和复选框的值不容易获取,因为它们在 DOM 中共享相同的名称。您必须遍历这些元素中的每一个并检查其子元素中的哪些被检查。

所以,你需要扩展你的循环。一种方法是:

function DisplayFormValues(){
    var theform = document.form1;
    var a = ['input', 'textarea', 'select'];
    var echo = '';
    for (var i = 0; i < a.length; i++) {
        var tag = a[i];
        var els = theform.getElementsByTagName(tag);
        for (var j = 0; j<els.length; j++) {
            el = els[j]; // the element
            if ((tag == 'input' && (el.type == 'text' || el.type == 'password')) || tag == 'select') {
                echo += '<strong>' + el.name + '</strong>: ' + el.value + '<br />';
            } else if ((tag == 'checkbox' || tag == 'radio') && el.checked) { // the element is checked!
                echo += '<strong>' + el.name + '</strong>: ' + el.value + '<br />';
            }
        }
    }
    document.getElementById('lblValues').innerHTML = echo;
}
于 2013-03-11T17:41:53.027 回答