свойство "defaultValue" для?

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 ответов


вероятно, вы хотите посмотреть атрибут "defaultSelected" элементов "option".

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


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

$('select[name="name_of_select"] option[selected]').val()

с Jquery мы можем сделать sth так:

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

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


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

если сценарий приходит крест один selectbox он будет цикл через детей на selectbox.

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);
 }

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


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

$('select#myselect').find('option[defaultSelected]');

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

// 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);
    }
});

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

$('#selectbox option').prop('selected', function() {
     return this.defaultSelected;
});