記錄今天所遇到textarea標籤取值的問題
首先建立一個textarea
標籤
<textarea id="textareaTest" cols="30" rows="10">我是初始化文字</textarea>
複製程式碼
此時分別console.log
列印innerText
,innerHtml
,value
console.log('innerText:',textareaTest.innerText) //innerText:
console.log('innerHTML:',textareaTest.innerHTML) //innerHTML: 我是初始化文字
console.log('value:',textareaTest.value) //value: 我是初始化文字
複製程式碼
發現預設寫入的字串也給textarea
中的value
進行賦值,介面中的文字框和控制檯內textarea
標籤中也有預設文字
接下來我們在有預設值“我是初始化文字”的情況下分別對innerText
,innerHtml
,value
進行賦值操作看看變化
innerText
textareaTest.innerText = 'innerText'
console.log('innerText:', textareaTest.innerText) //innerText:
console.log('innerHTML:', textareaTest.innerHTML) //innerHTML: innerText
console.log('value:', textareaTest.value) //value: innerText
複製程式碼
innerHtml
textareaTest.innerHtml = 'innerHtml'
console.log('innerText:', textareaTest.innerText) //innerText:
console.log('innerHTML:', textareaTest.innerHTML) //innerHTML: innerHtml
console.log('value:', textareaTest.value) //value: innerHtml
複製程式碼
value
textareaTest.value = 'value'
console.log('innerText:', textareaTest.innerText) //innerText:
console.log('innerHTML:', textareaTest.innerHTML) //innerHTML: 我是初始化文字
console.log('value:', textareaTest.value) //value: value
複製程式碼
此時我們再次進行innerHtml
和innerText
賦值
textareaTest.innerHtml = 'innerHtml'
console.log('innerText:', textareaTest.innerText) //innerText:
console.log('innerHTML:', textareaTest.innerHTML) //innerHTML: innerHtml
console.log('value:', textareaTest.value) //value: value
複製程式碼
textareaTest.innerText = 'innerText'
console.log('innerText:', textareaTest.innerText) //innerText:
console.log('innerHTML:', textareaTest.innerHTML) //innerHTML: innerText
console.log('value:', textareaTest.value) //value: value
複製程式碼
textareaTest.value = '我是新value'
console.log('innerText:', textareaTest.innerText) //innerText:
console.log('innerHTML:', textareaTest.innerHTML) //innerHTML: innerText
console.log('value:', textareaTest.value) //value: 我是新value
//value又再次被賦值
複製程式碼
發現雖然innerHtml
一直在變化但是innerText
從沒有改變過,且value
在做完value
賦值後就無法通過value
賦值外的方法改變
一句話總結:
由上可見Chrome中對textarea
進行innerText
取賦操作均無效(IE有效)
且當我們在沒有對textarea
的value
進行操作前,對innerHtml
和innerText
進行字串賦值,則textarea
的value
就有了一個預設的值,並且可以通過innerHtml
和value
來獲取,可當對value
進行操作後(文字框寫入也是操作value
),innerHtml
和innerText
則不會再對value
進行賦值,且文字框優先顯示value
中的內容