HTML <select>атрибут defaultValue (но неизменение) - PullRequest
2 голосов
/ 16 июля 2011

Я пишу небольшой скрипт, чтобы проверить, была ли форма изменена перед отправкой.Таким образом, нормальные входы (текст, текстовое поле и т. Д.) Я могу использовать:

if(element.defaultValue != element.value) {
    altered[element.name] = element.value;
    element.value = element.defaultValue;
}

Это прекрасно работает.Но, похоже, у выбранных входов нет ни одного, с кем можно было бы проверить.Хотя в Firebug он появляется в списке DOM, но черным (вместо зеленого), который, я считаю, означает, что он добавлен браузером (исправьте меня, если я ошибаюсь).

Если я регистрирую элемент.defaultValue для элемента select возвращает undefined.

Итак, мой вопрос, есть ли у атрибута defaultValue?Или какая-нибудь альтернатива, которую я могу использовать?

Ответы [ 2 ]

1 голос
/ 20 апреля 2012

Для опции по умолчанию атрибут defaultSelected установлен в значение true.

Вы можете использовать следующее, чтобы получить выбор по умолчанию в JQuery:

$('#ddlReceivingStore').children('option[defaultSelected="true"]')
1 голос
/ 16 июля 2011

Если вы не устанавливаете выбранную по умолчанию опцию для элемента <select> (или если вы всегда выбираете первую опцию по умолчанию), вы можете попробовать:

if(element.selectedIndex && element.selectedIndex != 0) {
    //this handles <select> inputs
    altered[element.name] = element.options[element.selectedIndex].value;
    element.selectedIndex = 0;
}
else if(element.defaultValue != element.value) {
    //this handles any other kind of input (except not really for checkbox, radio, etc.)
    altered[element.name] = element.value;
    element.value = element.defaultValue;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...