Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单选按钮不';t设置为选中状态_Javascript_Jquery_Html_Radio Button - Fatal编程技术网

Javascript 单选按钮不';t设置为选中状态

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"> Возраст

我做了一些测试,其中一个任务是通过JavaScript(jQuery)生成单选按钮。我一次又一次地重新设计构造,但始终存在一个问题:JS通过单击样式化的克隆成功地将输入单选按钮属性设置为checked=“checked”,但它实际上没有设置为selected,并且所需属性talkink相同。我不明白为什么

HTML:

<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隐藏。请告诉我你对英语感到舒服吗?我问你期待什么?是的,但有时,我不得不使用谷歌翻译。对不起,我不太明白你说的期待是什么意思?