JQuery - Сброс Формы - Исключает поле “Select”

Все,

Я могу сбросить все свои элементы формы с помощью следующего Синтаксиса JQuery:

('#myform')[0].reset();

Как я могу изменить это для исключения сброса "избранного поля" значения?

Спасибо

8
задан Lance McNearney 4 January 2010 в 23:52
поделиться

3 ответа

Всем...

функция сброса не все устанавливает в '' (пустая строка)

она сбрасывает на свои начальные значения ... (сохраненные в атрибуте значения, или выбранной опции и т.д... )

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

  1. получить все элементы <выберите>
  2. получить их текущие выбранные значения
  3. сбросить форму, как вы делаете
  4. повторно установить выбранные

пример:

<script type="text/javascript">
  $(document).ready(
  function(){
   $("#resetbutton").click(
    function(){
     var values = [];
     var selected = $("select").each(
      function(){
       values.push( $(this).val());
       });
     this.form.reset();
     for (i=0;i<selected.length;i++)
      $(selected[i]).val(values[i]);
    });
    }
  );
 </script>
10
ответ дан 5 December 2019 в 10:41
поделиться

Это не jQuery, это родной javascript. [0] выводит фактический элемент DOM, так что это то же самое, что:

document.getElementById('myform').reset();

reset() - встроенная реализация браузера, которая сбрасывает всю форму. Если вам нужно сбросить отдельные типы форм, попробуйте что-нибудь вроде:

$('#myform :text').val('');

Вы можете увидеть все селекторы форм здесь: http://docs.jquery.com/Selectors

6
ответ дан 5 December 2019 в 10:41
поделиться

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

var myform = $('#myform');
var selects = $('select', myform);

// Store each current value
selects.each(function() {
    $(this).data('previous', $(this).val()); 
});

myform[0].reset();

// Restore the values
selects.each(function() {
    $(this).val($(this).data('previous')); 
});
0
ответ дан 5 December 2019 в 10:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: