Получить оригинальное значение опции выбора - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть кнопка на странице, чтобы пользователи возвращали опцию поля ввода к исходному значению

val = inputfield.text()
if (!val){
    val = $(inputfield).attr("value")
}
inputfield.val(val)

Это работает для всех полей ввода, кроме выпадающих списков.

ЕслиУ меня есть раскрывающийся список со значениями «1», «2», «3», и у меня изначально выбрано «2», а затем измените выбранную опцию на «1».inputfield.find(':selected') вернет «1», но есть ли способ заставить его вернуть начальное значение (в данном случае «2»).

При проверке источника страницы все равно будет отображаться «2» в выбранном виде.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

В итоге я нашел свойство defaultSelected .

.prop('defaultSelected') вернет true только для оригинальной опции выбора

Вот как я изменил свой код для сбросаопция выбора возвращается к исходному значению:

inputfield.find('option').prop('selected', function () {
    if($(this).prop('defaultSelected')){
        val = $(this).val();
        inputfield.val(val);
    }
});
0 голосов
/ 05 декабря 2018

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

Затем можно использовать что-то вроде следующего для «сброса» вашеговыпадающий по мере необходимости:

Учитывая ваши параметры:

<div>
<select>
  <option>1</option>
  <option selected>2</option>
  <option>3</option>
</select>
</div>
<button id="reset">reset</button>

Вы можете использовать что-то вроде этого:

var org = $('div select').find(':selected').text()

$('#reset').on('click',function(){
  $('div select').val(org)
})

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

...