Javascript и defaultValue скрытых элементов ввода
Предположим, что у вас есть элемент ввода:
<input id="aaa" type="text" value="unchanged" />
Затем запустите js script:
var e = document.getElementById("aaa");
e.value = "changed";
alert(e.defaultValue + "/" + e.value);
Результат будет "неизменным/изменен". К сожалению, когда ваш элемент ввода hidden
:
<input id="aaa" type="hidden" value="unchanged" />
... те же js script, похоже, больше не работают. Результат "изменен/изменен".
Правильно ли это? Если да, то почему только элементы скрытой формы действуют иначе?
Ответы
Ответ 1
Свойство defaultValue поддерживается только так, как вы, вероятно, ожидаете для полей "текст", "файл" и "пароль".
Здесь - соответствующая часть спецификации DOM.
Я подозреваю, что причина в том, что пользовательская активность сама по себе не может изменить значение скрытых элементов. Если вы хотите сохранить начальные значения, запустите что-то в "load" или "ready", чтобы где-то занести значение.
Ответ 2
Для скрытых входных элементов defaultValue фактически не реализован. Причина, по которой вы получаете тот же результат ast .value
, заключается в том, что браузер, используемый вами, просто не работает.
Смотрите здесь, чтобы обсудить это с Firefox.