Как сбросить выбранный jquery параметр выбора с помощью jQuery?



Я пробовал много вещей, и ничего, кажется, работает.



Я использую jQuery и плагина.



методы, которые я пробовал:



var select = jQuery('#autoship_option');

select.val(jQuery('options:first', select).val());

jQuery('#autoship_option').val('');

jQuery('#autoship_option').text('');

jQuery('#autoship_option').empty('');

jQuery("#autoship_option option[value='']").attr('selected', true);


Он всегда показывает активный параметр Autoship, как только он был выбран. Я не могу заставить его очистить выбор.



вот поле выбора:



<select id="autoship_option" data-placeholder="Choose Option..." 
style="width: 175px;" class="chzn-select">
<option value=""></option>
<option value="active">Active Autoship</option>
</select>


кто-нибудь знаком с выбранным и может очистить поле выбора с одним параметром? (Он будет иметь больше вариантов в будущее.

687   19  

19 ответов:

задание select значение элемента в пустую строку и правильный способ сделать это. Однако это только обновляет корень select элемент. Обычай chosen элемент понятия не имеет, что корень select была обновлена.

для того, чтобы уведомить chosen что select был изменен, вы должны вызвать chosen:updated:

$('#autoship_option').val('').trigger('chosen:updated');

или, если вы не уверены, что первый вариант является пустой строкой, используйте это:

$('#autoship_option')
    .find('option:first-child').prop('selected', true)
    .end().trigger('chosen:updated');

читать документация здесь (найти раздел под названием Обновление Выбирается Динамически).


П. С. более старые версии выбранных использовать несколько другое событие:

$('#autoship_option').val('').trigger('liszt:updated');

первый вариант должен быть достаточным:http://jsfiddle.net/sFCg3/

jQuery('#autoship_option').val('');

но вы должны убедиться, что вы запускаете это на событие, как click и ready или документ, как на jsfiddle.

также убедитесь, что в тегах опций всегда есть атрибут value. Если нет, то некоторые браузеры всегда возвращаются пустыми на val().

Edit:
Теперь, когда вы прояснили использование выбранного плагина, вы надо позвонить

$("#autoship_option").trigger("liszt:updated");

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

http://harvesthq.github.com/chosen/

попробуйте это, чтобы перезагрузить обновленное поле выбора с последним выбранным JS.

$("#form_field").trigger("chosen:updated");

http://harvesthq.github.io/chosen/

он обновит выбранный раскрывающийся список с новым загруженным полем выбора с Ajax.

попробуйте это:

$("#autoship_option option[selected]").removeAttr("selected");

Я использую этот:

$('idSelect').val([]);

протестировано на IE, Safari & Firefox

$('#autoship_option').val('').trigger('liszt:updated');

и установите значение параметра по умолчанию для ''.

Он должен использоваться с выбранным обновленным jQuery, доступным по этой ссылке:https://raw.github.com/harvesthq/chosen/master/chosen/chosen.jquery.min.js.

Я потратил один полный день, чтобы узнать в конце, что jquery.min отличается от chosen.jquery.min

jQuery("#autoship_option option:first").attr('selected', true);

Это более эффективно, чем найти.

$('select').children('option').first().prop('selected', true)
$('select').trigger("chosen:updated");

Я не уверен, что это относится к старой версии выбранного, но теперь в текущей версии (v1.4. 1) у них есть опция $('#autoship_option').chosen({ allow_single_deselect:true }); Это добавит значок " x " рядом с выбранным именем.Используйте 'x', чтобы очистить поле' select'.

PS: убедитесь, что у вас есть 'chosen-sprite.png' в нужном месте в соответствии с выбранным.css, чтобы значки были видны.

var config = {
      '.chosen-select'           : {},
      '.chosen-select-deselect'  : {allow_single_deselect:true},
      '.chosen-select-no-single' : {disable_search_threshold:10},
      '.chosen-select-no-results': {no_results_text:'Oops, nothing found!'},
      '.chosen-select-width'     : {width:"95%"}
    }
    for (var selector in config) {
      $(selector).chosen(config[selector]);
    }

использовать выше конфигурации и применить class='chosen-select-deselect' для вручную снять и установить пустое значение

или если вы хотите отменить выбор опции во всех комбо, то применить конфигурацию, как показано ниже

var config = {
  '.chosen-select'           : {allow_single_deselect:true},//Remove if you do not need X button in combo
  '.chosen-select-deselect'  : {allow_single_deselect:true},
  '.chosen-select-no-single' : {disable_search_threshold:10},
  '.chosen-select-no-results': {no_results_text:'Oops, nothing found!'},
  '.chosen-select-width'     : {width:"95%"}
}
for (var selector in config) {
  $(selector).chosen(config[selector]);
}

в Chrome версии 49

ты всегда нужен этот код

$("select option:first").prop('selected', true)

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

HTML:

<select id="autoship_option" data-placeholder="Choose Option..." 
        style="width: 175px;" class="chzn-select">
    <option value=""></option>
    <option value="active">Active Autoship</option>
</select>
<button id="rs">Click to reset</button>

JS:

$('#rs').on('click', function(){
    $('autoship_option').find('option:selected').removeAttr('selected');
});

Скрипка:http://jsfiddle.net/Z8nE8/

вы можете попробовать это, чтобы сбросить (пустой) выпадающий

 $("#autoship_option").click(function(){
            $('#autoship_option').empty(); //remove all child nodes
            var newOption = $('<option value=""></option>');
            $('#autoship_option').append(newOption);
            $('#autoship_option').trigger("chosen:updated");
        });

новые выбранные библиотеки не используют лист. Я использовал следующее:

document.getElementById('autoship_option').selectedIndex = 0;
$("#autoship_option").trigger("chosen:updated");

Если вам нужно выбрать первый вариант независимо от его значения (иногда значение первого варианта не пусто), используйте это:

$('#autoship_option').val($('#autoship_option option:first-child').val()).trigger("liszt:updated");

он получит значение первого параметра и установит его как выбранный, а затем запустит обновление на выбранном. Поэтому он работает как сброс к первому варианту в списке.

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

Html:
<select class='chosen-control'>
<option>1<option>
<option>2<option>
<option>3<option>
</select>

Jquery:
$('.chosen-control').val('').trigger('liszt:updated');

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

$('.chosen-control').val('').trigger("chosen:updated");

ссылки: как сбросить выбранный Jquery выберите опцию

jQuery('.chosen-processed').find('.search-choice-close').click();

простое добавление триггера изменить следующим образом:

$('#selectId').val('').trigger('change');

Comments

    Ничего не найдено.