Nano Hash - криптовалюты, майнинг, программирование

jquery UI selectmenu - Как сбросить раскрывающийся список на кнопке сброса формы

У меня возникла проблема с jQuery.selectmenu, когда я нажимаю кнопку сброса, я бы хотел, чтобы она сбрасывалась, как и все другие поля. любой ввод обновляется прямо сейчас, но с этим плагином не обновляется. что делать ?

немного подробнее:

<form action="#" name="editform">
    <fieldset>
        <select name="speed" id="speed">
            <option value="Slower">Slower</option>
            <option value="Slow">Slowwwwwwwwww</option>
            <option value="Medium" selected="selected">Medium</option>
            <option value="Fast">Fast</option>
            <option value="Faster">Fasterrrrrrrrrrrrrrrr</option>
        </select>
    </fieldset>
<a class="refForm" href="javascript:document.editform.reset()">Reset</a>
</form>

теперь, когда я нажимаю «Сброс», он не сбрасывает раскрывающийся список (выбрать). Я хочу, чтобы все поля выбора возвращались к значениям по умолчанию с нажатием кнопки сброса.

кстати: это плагин: Wiki jQuery-ui-selectmenu

Ваше здоровье ! Лукас


Ответы:


1

Сбросить все поля со списком формы

$("form .select").selectmenu("index", 0);
14.06.2012
  • Я боюсь, что нет такого аргумента, как индекс, принимаемый методом selectmenu. См. мой ответ на - stackoverflow.com/a/39591945/1705383 20.09.2016

  • 2

    единственное решение, работающее для меня:

    $('#resetButton').click(function() {
      $("#Service").selectmenu('destroy');
      $("#Service").prop('selectedIndex',0);
      $("#Service").selectmenu();
    })';
    
    12.09.2014
  • Не лучшее решение, но мое единственное работоспособное решение. Спасибо 03.05.2017

  • 3

    Я обнаружил, что это так же просто, как: (замените #mymenu своим селектором)

    $("#mymenu")[0].selectedIndex = 0;

    $("mymenu").selectmenu("обновить");

    14.08.2015

    4

    Глядя на демонстрационную страницу:

    http://jquery-ui.googlecode.com/svn/branches/labs/selectmenu/index.html

    Я не вижу никаких доказательств того, что у него есть метод сброса. Но если бы это было так, я бы ожидал, что это будет называться так:

    $('select#speed').reset();
    

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

    .reset(), который вызывает ваш JS, является встроенным методом DOM. Вы можете использовать методы DOM для сброса выбора следующим образом:

    getElementById("speed").selectedIndex = 0;
    
    10.06.2011
  • Эй, ну это работает так: если сбросить - индекс сбрасывается по умолчанию, но jQuery.selectmenu не обновляется. Если вы получаете выбранный индекс - он меняется, но выпадающий список остается в позиции, которая была выбрана последней. К сожалению, для этого нет .reset();) 10.06.2011
  • Он работает даже со стандартной кнопкой сброса ввода, но не обновляет представление, поэтому мне нужно обновить/перестроить jQuery.selectmenu или что-то в этом роде. НО ! - забавная вещь - если нажать 2 раза, то меняется ›‹ 10.06.2011
  • ЕСТЬ ИДЕИ ? Как перезагрузить все меню выбора при сбросе формы? 10.06.2011
  • Что ж, я полагаю, вы могли бы прослушать событие сброса формы и заставить обработчик перестроить меню выбора. 10.06.2011

  • 5

    Вы можете привязать функцию к событию нажатия кнопки\триггера сброса вместо обработчика привязки к событию сброса формы. Хитрость заключается в том, что когда вы сбрасываете форму, исходный выбор в ней сбрасывается до своего начального значения, поэтому после сброса формы вы можете получить значение выбора и обновить свое пользовательское меню выбора с этим значением. Это позволит вам сбросить пользовательское меню выбора. Вот код:

    $('.refForm').click(function(){
        var $that = $(this),
            select;
        setTimeout(function(){
            $that.closest('form').find('.ui-selectmenu').each(function(){
                select = $(this).prev();
                select.selectmenu("value", select.val());
            })
        }, 0)
    })
    

    Функция, которая получает значение исходного сброшенного выбора, помещается внутрь setTimeout с нулевой задержкой, чтобы убедиться, что исходный выбор будет сброшен до того, как функция получит доступ к этому значению.

    Также обратите внимание, что если в тегах параметров не указаны атрибуты значений, приведенный выше код не будет работать в IE (насколько я тестировал, 7-9). Поэтому вам нужно указать значение для всех параметров.

    24.11.2011

    6

    Меню выбора пользовательского интерфейса jQuery имеет свойство обновления. Вы должны назвать это:

    $('select').selectmenu('refresh');
    

    Конечно, вы хотите вызвать это после того, как событие сброса сработало в форме, когда исходный <select> был сброшен. Не существует «правильного» способа сделать это (например, нет события после сброса). Конечно, вы можете установить тайм-аут (как упоминалось ранее), но это кажется хакерским. Лучший / самый чистый способ, который я нашел для этого, - написать свою собственную функцию «сброса» и вызвать в ней form.reset(), прежде чем вызывать обновление, как показано выше. Например, вы можете прослушать нажатие кнопки (кнопок) сброса:

    // Modify selectors to fit your needs.
    $('.resetButton').click(function()
    {
        $('#searchForm')[0].reset();
        $('select').selectmenu('refresh');
        return false;
    });
    

    Я возвращаю false, чтобы предотвратить повторный вызов reset().

    22.10.2014

    7

    Немного опоздал на вечеринку, однако, учитывая, что все остальные ответы либо неверны, либо неполны, я добавлю свои 2 цента!

    Все, что вам нужно сделать, это

    $('#speed').val("Slower"); // your default option's value
    $('#speed').selectmenu("refresh");
    
    20.09.2016
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..