Как сбросить выбранный 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>
кто-нибудь знаком с выбранным и может очистить поле выбора с одним параметром? (Он будет иметь больше вариантов в будущее.
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");после изменения значения для него, чтобы обновить интерфейс.
попробуйте это, чтобы перезагрузить обновленное поле выбора с последним выбранным JS.
$("#form_field").trigger("chosen:updated");http://harvesthq.github.io/chosen/
он обновит выбранный раскрывающийся список с новым загруженным полем выбора с Ajax.
$('#autoship_option').val('').trigger('liszt:updated');и установите значение параметра по умолчанию для
''.Он должен использоваться с выбранным обновленным jQuery, доступным по этой ссылке:https://raw.github.com/harvesthq/chosen/master/chosen/chosen.jquery.min.js.
Я потратил один полный день, чтобы узнать в конце, что
jquery.minотличается отchosen.jquery.min
Это более эффективно, чем найти.
$('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]); }
Я думаю, что вам нужно назначить новое значение для выбора, поэтому, если вы хотите очистить свой выбор, вы, вероятно, хотите назначить его тому, у которого есть значение = "". Я думаю, что вы сможете получить его, присвоив значение пустой строке так .функция 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");
Comments