喜悦国际村 » XML/HTML/CSS/Js » checkbox用javascript取值问题

页: [1]
goaler2006-11-15 03:18 PM
checkbox用javascript取值问题

<form method=post action="b.php">
<input type="checkbox" name="test[]" value="v1">v1
<input type="checkbox" name="test[]" value="v2">v2
<input type="checkbox" name="test[]" value="v3">v3
<input type="checkbox" name="test[]" value="v4">v4
<input type="checkbox" name="test[]" value="v5">v5
<input type="submit">
</form>
用javascript如何取得选中的checkbox的值呢?求助!!!

sanders_yao2006-11-16 07:39 AM
var inputObjects = document.getElementsByTagName("input");
var arrayValues = new Array;
for(var i = 0;i < inputObjects.length;i ++){
if("test[]" == inputObjects[i].name && false != inputObjects[i].checked){
arrayValues[arrayValues.length] = inputObjects[i].value;
}
}

没有经过测试 楼主自己试试看

[[i] 本帖最后由 sanders_yao 于 2006-11-16 03:41 PM 编辑 [/i]]

wuminghuo2006-11-17 06:08 AM
正好手头上有这样的代码,和大家分享下

[b]取得radio,CheckBox,Select的JS函数。[/b]

[code]

function $(s) {return document.getElementById(s);}
function trim(s) {return s.replace(/(^[ | ]*)|([ | ]*$)/g, "");}
function $a(s) {return document.getElementsByName(s);}
function getRadioValue(name)
{
        var arrObj = $a(name);
        var arrLen = arrObj.length;
        var value = false;
        for (var i=0; i<arrLen; i++)
        {
                if (arrObj[i].checked){
                        value = arrObj[i].value;
                        break;
                }
        }
        return value;
}

function getCheckBoxValue(id)
{
        var obj = $(id);
        if(obj.checked)
        {
                return obj.value;
        }
        return false;
}

function getSelectValue(id)
{
        var oSel = $(id);
        return oSel.options[oSel.selectedIndex].value;
}

function getValue(id)
{
        var obj = $(id);
        var tagName = obj.tagName;
       
        switch(tagName)
        {
                case 'INPUT':
                        var oType = obj.type;
                        switch (oType)
                        {
                                case 'radio':                       
                                        value = getRadioValue(id);
                                        break;
                                case 'checkbox':
                                        value = getCheckBoxValue(id);
                                        break;
                                default :
                                        value = obj.value;
                                        break;
                        }               
                        break;
                case 'SELECT':
                        value = getSelectValue(id);
                        break;
                case 'TEXTAREA':
                        value = obj.value;
                        break;
                default :
                        value = false;
                        break;
        }

        return value;
}
[/code]

km39452006-11-20 01:17 AM
getElementsByName
要遍历的东西太多.

sanders_yao2006-11-20 02:25 AM
的确 如果能把name属性写成连续的数组表达式也好如:
<input type="checkbox" name="test[0]" value="v1">v1
<input type="checkbox" name="test[1]" value="v2">v2
这种html输出使用php很容易做 之后js只需要
for(var i=0;1;i++){
var obj = document.getElementById("test[" + i + "]");
if(null == obj){
break;
}
.........
}
这样遍历所有的checkbox


查看完整版本: checkbox用javascript取值问题


Powered by Discuz! Archiver 6.1.0  © 2001-2006 Comsenz Inc.
Processed in 0.006917 second(s), 2 queries