Кнопка включения JQuery в зависимости от выбора - PullRequest
0 голосов
/ 06 октября 2009

У меня есть страница, которая содержит коллекцию выборок, которые используются для идентификации столбцов в текстовом файле. Каждый раз, когда пользователь идентифицирует столбец, выбранный параметр удаляется из другого выбора на странице. Когда пользователь определил все столбцы, необходимо активировать ввод «Отправить», чтобы пользователь мог перейти к следующему шагу. Мне нужен четкий способ определить, когда все столбцы были выбраны.

<script type="text/javascript" src="https://www.repfolio.com/Scripts/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="https://www.repfolio.com/Scripts/jquery.selectboxes.min.js"></script>
<script type="text/javascript">
    $(document).ready(
        function() {
            $('.ct').bind('change', function() { updateControls(this); });
        }
    );
    function updateControls(c) {
        $('.ct').unbind();
        if ($(c).val() == 'Reset') {
            var opt = $(c).find("option[value!='Reset']");
            // if there are selects with value = '' then add this option back to them -- need to address this select too
            if ($(".ct").filter("[value='']").size() > 0) {
                $(".ct").filter("[value='']").each(function() {
                    $(this).append($("<option></option>").attr("value", $(opt).val()).text($(opt).text()));
                });
                var options = $(".ct").filter("[value='']:first").children().clone();
                $(c).find('option').remove();
                $(c).append($(options));
            } else {
                $(c).find('option').remove();
                $(c).append($("<option></option>").attr("value", "").text("-- Select Column -"));
                $(c).append($("<option></option>").attr("value", $(opt).val()).text($(opt).text()));
            };
        } else {
            var s = $(c).children().filter('option[selected=true]');
            $(c).find('option').remove();
            $(".ct option[value='" + $(s).val() + "']").each(function() { $(this).remove(); });
            $(c).append($("<option></option>").attr("value", $($(s)).val()).text($(s).text()));
            $(c).append($("<option></option>").attr("value", "Reset").text("Reset"));
        }
        $(".ct").filter("[value='']").sortOptions()
        $('.ct').bind('change', function() { updateControls(this); });
        if ($('select.ct option:nth-child(3)').length)
            $('#submit').attr('disabled', 'enabled');
    };
</script>

Это раздел, который включает кнопку:

if ($('select.ct option:nth-child(3)').length)
            $('#submit').attr('disabled', 'enabled');

1 Ответ

0 голосов
/ 05 апреля 2013
$('#submit').attr('disabled', 'enabled');

отключенный атрибут может быть установлен только с отключенным. И если вы хотите включить кнопку, вы просто установите пустую строку, например:

$('#submit').attr('disabled', ''); 

Но в этом случае я рекомендую использовать ".prop":

$('#submit').prop('disabled', false);

Подробнее о разнице между ".prop" и ".attr" вы можете прочитать в jQuery.api

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...