使用通过函数传递的id或名称从复选框中获取值

时间:2011-05-04 08:21:34

标签: javascript checkbox

function checkSelect(field_id)
{
    var oParent = document.getElementById(field_id);
    alert(oParent);

    var aElements = oParent.getElementsByTagName('input');
    alert(aElements);   

    var c_value = "";
    for (var i = 0; i < aElements.length; i++)
    {
        if (aElements[i].type == 'checkbox') 
        {
            if(aElements[i].checked )
            {
                c_value=aElements[i].checked.value;
                alert(c_value);
            }
        }
    }

    //alert(c_value);   
}

我从这里搜索过的代码。请让我知道我做错了什么。我希望通过函数传递的fieldname或fieldid来获取复选框的值。 Javascript没有获得值“fieldid”,因为复选框的名称会导致错误。如果我给出硬编码值,那么它就像下面给出的函数一样工作。

function checkSelect()
{
    var bool=false;
    var field=document.countryManagementForm.country_ids;

    var length=1;
    if(field.length==null)
    {
    //alert("yes");
    }
    else
    {
    ///alert("No");
    length=field.length;
    }




    for (i = 0; i < length; i++)
    {
        if(field[i].checked == true)
        {
            bool=true;
        }
    }

    if(!bool)
    {
        alert("Please select atleast one country");
        return false;
    }
    else
    {

        return true;


    }

}

3 个答案:

答案 0 :(得分:0)

我建议使用javascript框架。做你想做的事情是轻而易举的:

对于ID:

$('#id').val();

姓名:

$('[name="name"]').val();

JqueryDocs

答案 1 :(得分:0)

更改

c_value=aElements[i].checked.value; 

c_value=aElements[i].value;

再试一次

答案 2 :(得分:0)

看起来country_ids是您的复选框输入的名称。如果是这样,您可以替换此行

var aElements = oParent.getElementsByTagName('input');

通过

var aElements = document.getElementsByName(field_id);

并忽略它上面的行。将您的功能称为checkSelect('country_ids')