innerHTML
- неправильный способ прочитать значение текстовой области.
Частично потому, что любые символы <
или &
в нем будут экранированы HTML, но в основном потому, что содержимое текстового узла внутри узла HTMLTextAreaElement
не указывает на текущее значение текстовой области.
Фактически текстовое содержимое узла является исходным содержимым текстовой области, как видно из исходного кода HTML. Это то же самое, что и свойство defaultValue
. Он не обновляется, когда вы вводите текстовую область ... за исключением IE, который, как обычно, все ошибается.
Вы, вероятно, хотите использовать inputs[iX].value
вместо.
То же самое относится и к обычным вводам, где input.value
представляет текущее значение, но input.getAttribute('value')
совпадает с input.defaultValue
, представляя исходное значение, введенное в атрибут value="..."
в источнике HTML. Опять же: кроме IE в связи с большим количеством ошибок.
То же самое относится и к свойствам checked
и selected
флажков и опций выбора: атрибуты checked
и selected
являются исходными значениями, отраженными в defaultChecked
и defaultSelected
свойства .
Кроме того, с length-1
вы игнорируете последнюю текстовую область в списке. Вы действительно хотите это сделать?