捕获单个字符串中的所有表单元素值

时间:2013-03-11 17:26:46

标签: javascript

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

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;
        }

1 个答案:

答案 0 :(得分: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;
}