Javascript 单选按钮不';t设置为选中状态
我做了一些测试,其中一个任务是通过JavaScript(jQuery)生成单选按钮。我一次又一次地重新设计构造,但始终存在一个问题:JS通过单击样式化的克隆成功地将输入单选按钮属性设置为checked=“checked”,但它实际上没有设置为selected,并且所需属性talkink相同。我不明白为什么 HTML:Javascript 单选按钮不';t设置为选中状态,javascript,jquery,html,radio-button,Javascript,Jquery,Html,Radio Button,我做了一些测试,其中一个任务是通过JavaScript(jQuery)生成单选按钮。我一次又一次地重新设计构造,但始终存在一个问题:JS通过单击样式化的克隆成功地将输入单选按钮属性设置为checked=“checked”,但它实际上没有设置为selected,并且所需属性talkink相同。我不明白为什么 HTML: <fieldset class="userAge"> <div class="fieldName"> Возраст
<fieldset class="userAge">
<div class="fieldName">
Возраст:
</div>
<div class="overflow">
<input type="radio" name="userAge" id="seventeen" title="Выберите если вы младше 17" required>
<label for="seventeen">17 и младше</label>
<input type="radio" name="userAge" id="eighteen" title="Выберите если вы старше 18" required>
<label for="eighteen">18 и старше</label>
</div>
</fieldset>
;(function($) {
// Расширяем набор элементов jQuery новым плагином.
$.fn.sexyElement = function() {
// Запуск для всех инициализаций на странице.
$(this).each(function() {
var element = $(this);
// RADIO
else if (element.is(':radio')) {
// Для всех существующих радио кнопок.
element.each(function() {
// Создание и обработка радио кнопок.
var createRadio = function(){
var sexyRadio = '<div class="radio" title="' + element.attr('title') + '">\
<div class="dot">\
</div>\
</div>';
element.before(sexyRadio);
}
// Запуск функции.
createRadio();
});
// Определяем основные элементы.
var commonParent = element.parents().eq(0),
buttons = commonParent.find(':radio');
// Обработка щелчка мыши.
$('.radio').click(function() {
$(this).addClass('checked').siblings().removeClass('checked');
buttons.attr('checked', false);
$(this).next(':radio').attr('checked', true);
buttons.change();
});
}
// END RADIO
// В противном случае.
else {
alert('Пожайлуста убедитесь, что выбранный вами элемент является select или radio');
return false;
}
});
}
})(jQuery);
$(document).ready(function() {
$(':radio').sexyElement();
});
<fieldset class="userAge">
<div class="fieldName">
Возраст:
</div>
<div class="overflow">
<input type="radio" name="userAge" id="seventeen" title="Выберите если вы младше 17" required>
<label for="seventeen">17 и младше</label>
<input type="radio" name="userAge" id="eighteen" title="Выберите если вы старше 18" required>
<label for="eighteen">18 и старше</label>
</div>
</fieldset>
<fieldset class="userAge">
<div class="fieldName">
Возраст:
</div>
<div class="overflow">
<label for="seventeen">
<input type="radio" name="userAge" id="seventeen" title="Выберите если вы младше 17" required>
17 и младше
</label>
<label for="eighteen">
<input type="radio" name="userAge" id="eighteen" title="Выберите если вы старше 18" required>
18 и старше
</label>
</div>
</fieldset>
PS:对不起,有一些关于俄语的标题。标签JS代码还没有编写。我真的不知道为什么,但通过在标签上添加输入单选按钮解决了这个错误 之前:
<fieldset class="userAge">
<div class="fieldName">
Возраст:
</div>
<div class="overflow">
<input type="radio" name="userAge" id="seventeen" title="Выберите если вы младше 17" required>
<label for="seventeen">17 и младше</label>
<input type="radio" name="userAge" id="eighteen" title="Выберите если вы старше 18" required>
<label for="eighteen">18 и старше</label>
</div>
</fieldset>
;(function($) {
// Расширяем набор элементов jQuery новым плагином.
$.fn.sexyElement = function() {
// Запуск для всех инициализаций на странице.
$(this).each(function() {
var element = $(this);
// RADIO
else if (element.is(':radio')) {
// Для всех существующих радио кнопок.
element.each(function() {
// Создание и обработка радио кнопок.
var createRadio = function(){
var sexyRadio = '<div class="radio" title="' + element.attr('title') + '">\
<div class="dot">\
</div>\
</div>';
element.before(sexyRadio);
}
// Запуск функции.
createRadio();
});
// Определяем основные элементы.
var commonParent = element.parents().eq(0),
buttons = commonParent.find(':radio');
// Обработка щелчка мыши.
$('.radio').click(function() {
$(this).addClass('checked').siblings().removeClass('checked');
buttons.attr('checked', false);
$(this).next(':radio').attr('checked', true);
buttons.change();
});
}
// END RADIO
// В противном случае.
else {
alert('Пожайлуста убедитесь, что выбранный вами элемент является select или radio');
return false;
}
});
}
})(jQuery);
$(document).ready(function() {
$(':radio').sexyElement();
});
<fieldset class="userAge">
<div class="fieldName">
Возраст:
</div>
<div class="overflow">
<input type="radio" name="userAge" id="seventeen" title="Выберите если вы младше 17" required>
<label for="seventeen">17 и младше</label>
<input type="radio" name="userAge" id="eighteen" title="Выберите если вы старше 18" required>
<label for="eighteen">18 и старше</label>
</div>
</fieldset>
<fieldset class="userAge">
<div class="fieldName">
Возраст:
</div>
<div class="overflow">
<label for="seventeen">
<input type="radio" name="userAge" id="seventeen" title="Выберите если вы младше 17" required>
17 и младше
</label>
<label for="eighteen">
<input type="radio" name="userAge" id="eighteen" title="Выберите если вы старше 18" required>
18 и старше
</label>
</div>
</fieldset>
Возраст:
17 и младше
18 и старше
之后:
<fieldset class="userAge">
<div class="fieldName">
Возраст:
</div>
<div class="overflow">
<input type="radio" name="userAge" id="seventeen" title="Выберите если вы младше 17" required>
<label for="seventeen">17 и младше</label>
<input type="radio" name="userAge" id="eighteen" title="Выберите если вы старше 18" required>
<label for="eighteen">18 и старше</label>
</div>
</fieldset>
;(function($) {
// Расширяем набор элементов jQuery новым плагином.
$.fn.sexyElement = function() {
// Запуск для всех инициализаций на странице.
$(this).each(function() {
var element = $(this);
// RADIO
else if (element.is(':radio')) {
// Для всех существующих радио кнопок.
element.each(function() {
// Создание и обработка радио кнопок.
var createRadio = function(){
var sexyRadio = '<div class="radio" title="' + element.attr('title') + '">\
<div class="dot">\
</div>\
</div>';
element.before(sexyRadio);
}
// Запуск функции.
createRadio();
});
// Определяем основные элементы.
var commonParent = element.parents().eq(0),
buttons = commonParent.find(':radio');
// Обработка щелчка мыши.
$('.radio').click(function() {
$(this).addClass('checked').siblings().removeClass('checked');
buttons.attr('checked', false);
$(this).next(':radio').attr('checked', true);
buttons.change();
});
}
// END RADIO
// В противном случае.
else {
alert('Пожайлуста убедитесь, что выбранный вами элемент является select или radio');
return false;
}
});
}
})(jQuery);
$(document).ready(function() {
$(':radio').sexyElement();
});
<fieldset class="userAge">
<div class="fieldName">
Возраст:
</div>
<div class="overflow">
<input type="radio" name="userAge" id="seventeen" title="Выберите если вы младше 17" required>
<label for="seventeen">17 и младше</label>
<input type="radio" name="userAge" id="eighteen" title="Выберите если вы старше 18" required>
<label for="eighteen">18 и старше</label>
</div>
</fieldset>
<fieldset class="userAge">
<div class="fieldName">
Возраст:
</div>
<div class="overflow">
<label for="seventeen">
<input type="radio" name="userAge" id="seventeen" title="Выберите если вы младше 17" required>
17 и младше
</label>
<label for="eighteen">
<input type="radio" name="userAge" id="eighteen" title="Выберите если вы старше 18" required>
18 и старше
</label>
</div>
</fieldset>
Возраст:
17 и младше
18 и старше
不管怎样,你知道为什么吗?你好,每个单选按钮中有两个单选按钮,一个是蓝色的,另一个是灰色的。预期的是什么?checked=“checked”工作正常。什么问题预期的是什么是的,这是意料之中的。这是测试用的。稍后它将被css隐藏。请告诉我你对英语感到舒服吗?我问你期待什么?是的,但有时,我不得不使用谷歌翻译。对不起,我不太明白你说的期待是什么意思?