Получить значения из флажков, используя идентификатор или имя, переданное через функцию - PullRequest
0 голосов
/ 04 мая 2011
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);   
}

Код, который я искал отсюда.Пожалуйста, дайте мне знать, что я делаю не так.Я хочу получить значения флажков по имени поля или 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 голосов
/ 04 мая 2011

измените

c_value=aElements[i].checked.value; 

на

c_value=aElements[i].value;

и попробуйте снова

0 голосов
/ 04 мая 2011

Похоже, country_ids - это имя вашего флажка ввода. Если это так, вы можете заменить эту строку

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

от

var aElements = document.getElementsByName(field_id);

и игнорируйте строки над ним. Вызовите вашу функцию как checkSelect('country_ids')

0 голосов
/ 04 мая 2011

Я бы порекомендовал использовать для этого фреймворк javascript.Легко сделать то, что вы хотите:

Для ID:

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

Для имен:

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

Jquery и Docs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...