Вопрос по html – Как проверить несколько радио-кнопок, радио-кнопок с одинаковым именем?

10

Я хочу проверить несколько переключателей, все переключатели имеют одинаковое имя, но разные идентификаторы.

Error: User Rate Limit Exceeded

 <span style="float:left;margin:0 0 0 10px">Proactivity</span>
        <label for="q11" style="width:auto;margin:0 60px 0 0;padding:0;"><input type="radio" id="qq[]" class="styled" value="Proactivity > Poor" name="q11[]">Poor</label>
        <label for="q11"  style="width:auto;margin:0 18px 0 0;padding:0;"><input type="radio" id="qqa[]" class="styled" value="Proactivity > Good" name="q11[]">Good</label>

        <br/><br/>
        <span style="float:left;margin:0 0 0 10px">Service/support</span>
        <label for="q11" style="width:auto;margin:0 60px 0 0;padding:0;"><input type="radio" id="qq[]" class="styled" value="Service/support > Poor" name="q11[]">Poor</label>
        <label for="q11"  style="width:auto;margin:0 18px 0 0;padding:0;"><input type="radio" id="qqa[]" class="styled" value="Service/support > Good" name="q11[]">Good</label>

        <br/><br/>
        <span style="float:left;margin:0 0 0 10px">Provision of <br />specialist skills</span>
        <label for="q11" style="width:auto;margin:0 60px 0 0;padding:0;"><input type="radio" id="qq[]" class="styled" value="Provision of specialist skills > Poor" name="q11[]">Poor</label>
        <label for="q11"  style="width:auto;margin:0 18px 0 0;padding:0;"><input type="radio" id="qqa[]" class="styled" value="Provision of specialist skills > Good" name="q11[]">Good</label>
Не говоря уже о ярлыках, указывающих на один и тот же элемент. Florian Margaine
Выcannot иметь несколько элементов с одинаковым идентификатором, все идентификаторы должны быть уникальными. Всех техid="qq[]" а такжеid="qqa[]" нужно изменить. Mattias Buelens

Ваш Ответ

6   ответов
0

Вы также можете поместить число (счетчик, если вы используете js) внутри массива имен, например так:

Проактивность: <input type="radio" name="myradio[0]"><input type="radio" name="myradio[0]">

Служба поддержки: <input type="radio" name="myradio[1]"><input type="radio" name="myradio[1]">

Обеспечение
профессиональные навыки: <input type="radio" name="myradio[2]"><input type="radio" name="myradio[2]">

2

Использование переключателей для выбора нескольких элементов противоречит правилу юзабилити. Если вы это сделаете, вы можете предоставить другое имя для них.

PS: вы должны предоставить внешнюю таблицу стилей для каждого переключателя. Было бы здорово, если вы хотите внести корректировку позже.

9

Обертывание ваших радиокнопок в теге формы позволит группам радиокнопок с одинаковым именем функционировать независимо друг от друга.

http://jsfiddle.net/8qB56/

Но, глядя на то, что вы пытаетесь сделать, для вас более уместно изменить имя ввода каждого логического вопроса, так как вы работаете с тем, что выглядит как одна форма.

Так что, возможно, вы можете изменитьname="q11[]" вname="q11[proactivity]" для ввода вопросов проактивности,name="q11[service]" для ввода служебного вопроса иname="q11[provision]" для обеспечения вопроса входов.

Выполнение этого позволит всем выбранным ответам из этих входных данных оставаться в поле q11 на стороне сервера, затем вы можете массировать данные так, как хотите (я предполагаю, что q11 означает «вопрос 11» или что-то такое, что так). почему вы так настойчиво сохраняете одинаковое имя для всех этих входов).

Очень хороший ответ и очень полезный :)
Doing this will allow all the selected responses from these inputs to stay in the q11 field on the server side Я пытался это сделать, и, к сожалению, это НЕ соответствует действительности. Когда вы называете свои группы переключателейname="q11[proactivity]" а такжеname="q11[service]" они принимаются как отдельные поля на стороне сервера (не как массив q11 [])
3

Когда вы используете одно и то же имя для всех радиовходов, все они попадают в одну группу. Это не позволит вам совершать отдельные действия.

Вы должны использовать разные имена для каждой радиогруппы

15

Вы не можете ". Радиокнопки есть дляsingle choice, Для множественного выбора вам нужны флажки.

Затем используйте радио-боксы и каждую «группу радио-боксов». должен иметь такое же уникальное имя. Другая группа радиобоксов должна иметь другое имя.
Тогда у тебя что-то не так. Я сказал вам, как это работает, вы должны адаптировать свою серверную сторону.
но когда мне нужно то же имя, чтобы вставить значения в базу данных Symfony
Я использую флажки, но когда я нажимаю кнопку & quot; Хорошо & quot; следует снять отметку «Плохо» Symfony
1

Работает пожалуйста перейдите по ссылке

http://jsfiddle.net/Cwalkdawg/3CxLD/2/

Поскольку вы настаиваете на использовании радио, я бы пошел с библиотекой jQuery, чтобы получить ваши значения. Вы можете добавить класс в свои радиостанции, и он позволит вам выбрать этот класс и выполнить итерацию по нему. Это нелогично и грязно, но это будет работать. Эта разметка:

<input, type="radio" class="rad" name="None" value="--" />None
<br />
<input type="radio" class="rad" name="Item1" value="Item1" />Item1
<br />
<input type="radio" class="rad" name="Item2" value="Item2" />Item2
<br />
<input type="radio" class="rad" name="Item3" value="Item3" />Item3
<br />
<input type="radio" class="rad" name="Item4" value="Item4" />Item4
<br />

Идет с этим JQuery:

$(document).ready(function () {
    $("#button").click(function () {
        // Radios
        $(".rad:checked").each(function() {
            console.log("Radio: " + $(this).val());
        });
    });
})

В скрипте я также добавил флажки, просто чтобы показать вам, насколько проще это сделать, то есть следующую разметку (которая читается легче и не так неоднозначно):

<input name="choices" type="checkbox" value="something1" />Option 1
<br />
<input name="choices" type="checkbox" value="something2" />Option 2
<br />
<input name="choices" type="checkbox" value="something3" />Option 3
<br />
<input name="choices" type="checkbox" value="something4" />Option 4
<br />

Идет с этим JQuery:

$("#button").click(function () {
    //Check boxes
    $("input:checkbox[name=choices]:checked").each(function() {
        console.log("Checkbox: " + $(this).val());
    });
});

Вы не можете отменить выбор радиокнопки, если не хотите отменить выбор всех из них, используя либо элемент сброса, который будет сбрасывать всю вашу форму, либо просто создавая пользовательскую функцию для радиомодулей (которые в любом случае очистили бы все варианты).

Отмена выбора может быть направлена на переключатель «Ваше имя = Нет» со следующим кодом:

$(".rad[name=None]").click(function() {
    $(".rad").removeAttr("checked");
});
OP запрашивает переключатели с «тем же именем».

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