свойство defaultValue для <select>? - PullRequest
9 голосов
/ 27 февраля 2010

В Javascript есть textObject.defaultValue=somevalue для извлечения значения по умолчанию (сохраненного значения из загрузки страницы) ввода, даже если вы стираете ввод и заменяете содержимое, вы все равно можете вернуть значение по умолчанию. Как это:

// in the html page
<input id="addr1" type="text" value="21 Oak St." />

// the jquery
myInput = $("#addr1"); // the input, default value on page load = 21 Oak St.

$(myInput).val('51 New St'); // wipe default and set new

// alerts 21 Oak St
alert($(myInput).val($(myInput)[0].defaultValue));

Как этого добиться на избранном?

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

Спасибо!

Ответы [ 8 ]

16 голосов
/ 27 февраля 2010

Возможно, вы захотите взглянуть на атрибут defaultSelected элементов option.

Первоначально defaultSelected будет true, если исходный HTML тега option имел явный атрибут selected. Вы можете изменить это, установив атрибут для тегов опций с помощью Javascript после загрузки страницы в ответ на любые условия, которые вам нравятся.

6 голосов
/ 08 ноября 2012

Это jquery, который работает для меня:

$('select[name="name_of_select"] option[selected]').val()
5 голосов
/ 15 июня 2011

с Jquery мы можем сделать что-то вроде этого:

$('select[name="type_id"] option').map(function()
 { 
    if($(this).attr('defaultSelected')==true) return this 
 }).get(0).value;

Это вернет значение выбранного параметра по умолчанию :)

1 голос
/ 20 января 2012

Я использовал следующее для просмотра форума, проверки значений по умолчанию и текущих значений.

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

oFormObject = document.forms[0];
for(i=0; i<oFormObject.elements.length; i++)
{
     oValue = oFormObject.elements[i].value;
     oType = oFormObject.elements[i].type;
     if(oType=='select-one') {
         for(k=0; k<oFormObject.elements[i].children.length; k++)
         {
             if(oFormObject.elements[i].children[k].defaultSelected==true){
                 oformElement = oFormObject.elements[i].children[k].value;
             }
         }
     }else{
         oformElement = oFormObject.elements[i].defaultValue;
     }
     console.log(oformElement);
     console.log(oValue);
     console.log(oType);
 }
0 голосов
/ 06 октября 2015

Самый простой способ сделать это:

$('#selectbox option').prop('selected', function() {
     return this.defaultSelected;
});
0 голосов
/ 16 сентября 2014

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

// Set a default value property on selectboxes (for reverting)
$('select').each(function(index,ele) {
    var origvalue = $(this).val(),
        defaultvalue = $(this).prop('defaultValue');

    // If the default value hasn't already been set for this selectbox
    if(!defaultvalue) {
        $(this).prop('defaultValue', origvalue);
    }
});
0 голосов
/ 15 марта 2013

Я нашел самый короткий способ сделать это:

$('select#myselect').find('option[defaultSelected]');
0 голосов
/ 01 марта 2010

может быть несколько «выбранных» элементов опции, в этом случае выберите первый, если другие требования не установлены. Подсказка @Pointy верна, но помните, что свойство defaultValue может быть перезаписано другим кодом на той же странице. Если бы это было только для чтения, было бы более полезно: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...