2010-12-15 2 views
14

자바 스크립트를 통해 텍스트 영역의 맞춤법 검사를 비활성화 할 수 있습니까?JavaScript를 통해 텍스트 영역의 맞춤법 검사를 사용 중지 할 수 있습니까?

나는 HTML5 'spellcheck' attribute을보고 있었고, 독자적으로 작동하도록 할 수 있습니다. 그러나 JavaScript를 통해이 특성을 변경할 수 있어야합니다.

은 위의 링크에서 제공하는 설명서를 읽은 후, 함께 코드의 다음 줄을 넣어 (큰 파일의 조각, 나는 그들이 스스로 작동하지 않습니다 알고) :

document.querySelector("#editor").spellcheck = "false"; 

document.querySelector("#editor").spellcheck = "true"; 

하지만 작동하지 않는 것 같습니다. 내가 실수를했거나 문서를 오해 한 적이 있습니까? (도움이되지 않으면 Chrome의 자바 스크립트 콘솔에서 오류가 표시되지 않습니다.) 또는 다른 방법으로이 작업을 수행 할 수 있습니까?

답변

20

당신은 (A true 값)을 문자열"true"과로 설정하는 문자열 (또한 true 값)"false".

사용 불량이 아니라 문자열. 따옴표를 제거하십시오.

+2

또한 document.querySelector ("# editor") 대신'document.getElementById ("editor")'를 사용하십시오. –

+0

spellcheck [1]의 HTML5 스펙에서 * string * false가 구문 분석됩니다. iOS5의 iPad에서 테스트하면 'element.spellcheck = false;'도 아니고 'element.setAttribute ('spellcheck ','false '); [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#spelling-and-grammar-checking – robocat

+0

위의 내 의견이 잘못되었습니다. 그러나 iOS5를 사용하는 iPad에서 테스트 한 결과 'element.spellcheck = false;'도 아니고 element.spellcheck = 'false'도 아니고 element.setAttribute ('spellcheck', 'false'); 자동 완성 설정, 자동 대문자 자동 설정, 자동 고침 설정 해제를 시도했는데 작동하지 않는 것 같습니다. 매우 좌절! – robocat

0

기본 속성이라고 가정합니다.

라이브러리없이 다음과 같은 작업을해야합니다 :

document.getElementById('editor').setAttribute('spellcheck', 'true'); // or false 

와 jQuery로

:

$('#editor').attr('spellcheck', 'true'); // or false 
+1

'setAttribute()'를 사용하는 것은 보통 나쁜 생각입니다. IE에서는 깨졌고 많은 사람들이 생각하는 것을하지 않습니다. 대개 해당 속성을 대신 사용하는 것이 좋습니다. –

2

적어도 나를 위해, 문자열/부울 구분이 HTML에 영향을주지 않습니다 자바 스크립트 - 자바 스크립트 해석 속성 "false" == false.

맞춤법 검사가 취소되지 않는 문제로 인해 텍스트 영역을 다시 평가하지 않아도 될 수 있습니다. 이 강제로이 코드를 시도 :

var editor = document.getElementById("editor"); 
editor.spellcheck = false; 
editor.focus(); 
editor.blur(); 

초점이없는 맞춤법 검사이 경우, 텍스트 영역을 다시 평가하기 위해 브라우저를 강제로. 희망이 도움이됩니다!

관련 문제