2016-02-08 2 views
-1

Мне нужно использовать имя атрибута, чтобы я мог использовать атрибут «name» для переключателя. Я знаю, что код для радио-кнопки с эксклюзивным выбором является:Можно выбрать одно радио без атрибута имени?

<input type="checkbox" name="radio"> 
<input type="checkbox" name="radio"> 

Любой человек может помочь мне в выборе другой метод визуализации радио с эксклюзивным выбором без имени атрибута?

+2

Это не очень понятно, что вы спрашиваете, но если нет группы, то флажок, вероятно, что вы хотите. Пожалуйста, объясните более подробно, что вы пытаетесь сделать. – charlietfl

+3

И почему бы вам не использовать имя? если используется в форме, элемент управления должен иметь имя или не будет отправлено – charlietfl

+0

. Что вы используете для имени 'name', если оно не для группировки? Если вам нужно различать кнопки в группе, вы должны использовать для этого значение 'value'. – Barmar

ответ

4

вы могли бы использовать class: -

$('.radio').change(function() { 
 
    $('.radio').not(this).prop('checked', false); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input type="radio" class="radio"> 
 
<input type="radio" class="radio">

или даже самая type: -

var radios = $('[type="radio"]'); 
 

 
radios.change(function() { 
 
    radios.not(this).prop('checked', false); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input type="radio"> 
 
<input type="radio">

+1

Зачем вам нужна такая конфигурация? Это не имеет смысла и никогда не будет подаваться, если используется в форме. Элементы управления формы без имени не будут отправлены – charlietfl

+0

@charlietfl Я согласен с использованием атрибута name, как и было предусмотрено, это всегда хорошая идея, но у меня всегда нет радиостанций даже в форме, или если я не хочу, чтобы быть представленным регулярно, я хочу, чтобы это было сделано с помощью ajax, и в этом случае не всем входам даже нужно имя. Но для радиоприемников я не понимаю, почему вы просто не использовали атрибут name. –

+1

... вы также должны слушать событие 'change', а не событие' click'. –

0

Я предлагаю нечто похожее на @ BG101, но обернуваю его в функцию и разрешаю использовать любой селектор jQuery, чтобы вы могли нацеливать несколько групп.

https://jsfiddle.net/53knnzho/

function bindRadios(selector){ 
 
    $(selector).click(function() { 
 
    $(selector).not(this).prop('checked', false); 
 
    }); 
 
}; 
 

 
bindRadios("#radio1, #radio2, #radio3"); 
 
bindRadios("#radio4, #radio5, #radio6");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type='radio' id='radio1' /> 
 
<input type='radio' id='radio2' /> 
 
<input type='radio' id='radio3' /> 
 
<br><br> 
 
<input type='radio' id='radio4' /> 
 
<input type='radio' id='radio5' /> 
 
<input type='radio' id='radio6' />

+0

Это может использовать классы или идентификаторы, или вы можете поместить их в div и сделать что-то вроде 'bindRadios (" div # div1 input [type = radio] ")', чтобы получить все в этом DIV/группа. –