Свойство Serializable определяется как:
- Когда вы устанавливаете свойство элемента, оно будет отражено в запросах сериализации, таких как
getAttributeи вы можете увидеть изменения в DOM Inspector - Когда вы получаете
.innerHTMLэлемента элемента, возвращаемая строка html будет содержать все сериализуемые свойства в качестве их атрибутов
Я сделал страницу, которая похожа на надежную печать таблицы всех сериализуемых свойств input элемента в Chrome и Firefox: http://jsfiddle.net/tEVLp/16/. Пользовательские свойства никогда не могут быть сериализованы, поэтому в firefox webkitSpeech т.д. Не являются сериализуемыми. Тест на хром для достижения наилучших результатов.
Все логические значения true потому что сериализация false свойства будет отсутствием атрибута, который является ложным отрицательным в тесте.
Поэтому мой вопрос: почему не такие свойства, как .value и .checked serializable?
Технически оба являются сериализуемыми. .value - это просто строка, и браузер не имеет проблем с сериализацией других логических свойств, таких как .readOnly и .disabled.
Мое лучшее предположение заключается в том, что поскольку .defaultValue сериализуется для "value" -attribute и .defaultChecked сериализуется для "checked" -attribute, возник конфликт, и поэтому значения .value и .checked не могут быть сериализованы. В этом случае, почему defaultX выбранные по defaultX, а не те, которые отражают более полезные текущие значения .value и .checked?