В JavaScript, как я могу получить все переключатели на странице с именем?

Вы попробовали Автоматический Генератор Make-файла ?

Это поддерживает для следующих компиляторов:

Borland 3.1 
Borland 5.0 
Borland 5.0, 16 bit 
Borland 5.5 
Borland 5.6 
Borland 5.8 
CC 
Gnu g++ 
Gnu g++, dynamic library 
Intel 5, 6, 7 for Linux 
Intel 5, 6, 7 for Linux, dynamic library 
Intel 5, 6, 7 for windows 
Intel 8,9,10 for Linux 
Intel 8,9,10 for Linux, dynamic library 
Intel 8,9 for windows 
Intel 10 for windows 
Visual C++ 5 
Visual C++ 6, 7, 7.1 
Visual C++ 8 
Open Watcom 
Watcom 10A 
Watcom 10A, 16 bit 

14
задан Peter Mortensen 5 November 2009 в 19:56
поделиться

6 ответов

Вы можете использовать document.getElementsByName () , передав имя радиогруппы, затем переберите их, проверяя атрибут checked , например, что-то вроде:

function getCheckedValue( groupName ) {
    var radios = document.getElementsByName( groupName );
    for( i = 0; i < radios.length; i++ ) {
        if( radios[i].checked ) {
            return radios[i].value;
        }
    }
    return null;
}
26
ответ дан 1 December 2019 в 06:24
поделиться

Используйте document.getElementsByName () - это краткий ответ на заданный вами вопрос.

Однако может быть лучше сделать что-то вроде этого:

<form name="formFoo">
  Foo: <input type="radio" name="groupFoo" value="foo" checked> <br />
  Bar: <input type="radio" name="groupFoo" value="bar"> <br />
  Baz: <input type="radio" name="groupFoo" value="baz"> <br />
  <input type="submit" >
</form> 

Затем используйте JavaScript:

function getRadioValue(formName, groupName) {
    var radioGroup = document[formName][groupName];
    for (var i=0; i<radioGroup.length; i++)  {
       if (radioGroup[i].checked)  {
       return radioGroup[i].value;
       }
    }
    return null;
}

Делая это, вы избегаете использования функции, которая выполняет поиск по всему документу. Он просто ищет сначала форму, а затем в этой форме элементы управления с тем же именем. Проблема здесь в том, что если бы у вас был флажок в середине формы с тем же именем, он мог бы быть возвращен вместо правильного значения радио. Если был добавлен другой тип элемента управления с тем же именем, это могло вызвать ошибку. Оба эти обстоятельства, вероятно, следует рассматривать как ошибку программиста, но не повредит, если функция будет расширена для их проверки при некоторой потенциальной потере производительности. Просто измените строку:

       if (radioGroup[i].checked)  {

на:

       if (radioGroup[i].type=='radio' && radioGroup[i].checked)  {
8
ответ дан 1 December 2019 в 06:24
поделиться
var options = document.getElementsByName('myRadioButtons');
for(i = 0; i < options.length; i++)
{
    var opt = options[i];
    if(opt.type=="radio")
    {              
        if(opt.checked)
        {
        }                  
    }
}
3
ответ дан 1 December 2019 в 06:24
поделиться

Я хочу получить ответ jQuery

var selectedValue = $("input[name='radio_name']:checked").val();
3
ответ дан 1 December 2019 в 06:24
поделиться
<form name="myForm" id="myForm" action="">  
<input type="radio" name="radioButton" value="c1">Choice 1
<input type="radio" name="radioButton" value="c2">Choice 2
</form>
<script>
var formElements = window.document.getElementById("myForm").elements;
var formElement;
var radioArray = [];

for (var i = 0, j = 0; i < formElements.length; i++) {
    formElement = formElements.item(i);
    if (formElement.type === "radio" && formElement.name === "radioButton") {
        radioArray[j] = formElement;
        ++j;
    }
}
alert(radioArray[0].value);
alert(radioArray[1].value);
</script>
2
ответ дан 1 December 2019 в 06:24
поделиться
$("input[type='radio'][name='xxxxx']:checked").val()
0
ответ дан 1 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: