텍스트 영역에 대한 val () 대 text ()


106

jQuery를 사용하고 있으며 val () 또는 text () (또는 다른 메서드)를 사용하여 textarea의 내용을 읽고 업데이트해야하는지 궁금합니다.

나는 둘 다 시도했고 둘 다 문제가 있습니다. text ()를 사용하여 텍스트 영역을 업데이트하면 줄 바꿈 (\ n)이 작동하지 않습니다. val ()을 사용하여 textarea 내용을 검색 할 때 너무 길면 텍스트가 잘립니다.


줄 바꿈이 작동하지 않는다는 것은 무엇을 의미합니까?
kaz

@kaz : 텍스트가 같은 줄에 유지됩니다.
Christophe

콘솔의 디버그 출력에서 ​​"텍스트가 잘림"이란 무엇을 의미합니까? 반환 값 자체에서? 당신이 jsfiddle ... 제공하면 쉬울 것
콘스탄틴은 Groß

@Connum : 반환 값에서. ... 지금 jsfiddle을 시도
크리스토프

1
잘린 텍스트 영역 텍스트를 검색하여 여기에 왔습니다. .val () 끝에 \ n \ n 몇 개를 추가하여 문제를 해결했습니다. 이상하지만 작동했습니다.
Darin 2013

답변:


148

텍스트 영역의 값을 설정 / 가져 오는 가장 좋은 방법은 .val(), .value메서드입니다.

.text()내부적으로 .textContent(또는 .innerTextIE의 경우) 메서드를 사용하여 <textarea>. 다음 테스트 케이스가 설명하는 방법 text().val()서로 관계 :

var t = '<textarea>';
console.log($(t).text('test').val());             // Prints test
console.log($(t).val('too').text('test').val());  // Prints too
console.log($(t).val('too').text());              // Prints nothing
console.log($(t).text('test').val('too').val());  // Prints too

console.log($(t).text('test').val('too').text()); // Prints test

value 특성 에 의해 사용되는 .val()반면, 항상은 현재 눈에 보이는 값을 보여줍니다 text()의 반환 값이 잘못 될 수 있습니다.


thx, 지금 시도해보세요. 현재 val () 및 잘림으로 발생한 문제를 복제 할 수 없습니다. 어쩌면 내가 잘못 용의자 ... 있어요
크리스토프

5
예를 들어 주셔서 감사합니다. 분명히 그것이 내 문제였으며 text ()로 작성하고 val ()으로 읽었습니다.
Christophe

을 사용하여 텍스트 영역의 값을 text()변경하는 것은 수동으로 변경 한 후 더 이상 작동하지 않습니다 (예 : 문자 추가)
Jan

12

.val()항상 textarea요소 와 함께 작동 합니다.

.text()때때로 작동하고 다른 시간에 실패합니다! 신뢰할 수 없음 (Chrome 33에서 테스트 됨)

가장 좋은 점은 .val()다른 양식 요소 (예 input:) .text()와도 원활하게 작동 하지만 실패 한다는 것 입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.