Свойство 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
?