ปิดใช้งานการตรวจสอบการสะกดคำในฟิลด์ข้อความ HTML


287

ฉันสามารถปิดการตรวจสอบการสะกดคำในฟิลด์ข้อความ HTML (ตามที่เห็นใน Safari) ได้หรือไม่

คำตอบ:


420

อัปเดต : ตามที่ผู้วิจารณ์แนะนำ (เพิ่มเครดิตให้กับฉันจะปิดการใช้งานตัวตรวจการสะกดคำในการป้อนข้อความบน iPhone ) ได้อย่างไรใช้สิ่งนี้เพื่อจัดการเบราว์เซอร์เดสก์ท็อปและมือถือทั้งหมด

<tag autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>

คำตอบเดิม: Javascript ไม่สามารถแทนที่การตั้งค่าของผู้ใช้ดังนั้นถ้าคุณใช้กลไกอื่นนอกเหนือจาก textfields สิ่งนี้อาจเป็นไปไม่ได้ (หรือไม่ควร)


4
ทำไมเรื่องนี้ถึงได้รับการยอมรับ มันไม่สมเหตุสมผลเนื่องจากสามารถแทนที่การตั้งค่าของผู้ใช้หากเบราว์เซอร์อนุญาต ดูคำตอบของ ms2ger
usr

1
เพียงเพราะมันเป็นคำตอบที่ดีที่สุดในเวลา ฉันเดาว่ามิเชลไม่ได้กลับมาและทำเครื่องหมายอีกอันว่าถูกต้อง นั่นคงเป็นสิ่งที่ดีสำหรับฉันเพราะมันเป็นคำตอบที่ดีกว่า
Eric Wendelin

2
สิ่งสำคัญที่ควรทราบความเข้ากันได้ของเบราว์เซอร์ - Mobile Safari (iOS) ไม่เคารพแท็กเช่น - wufoo.com/html5/attributes/17-spellcheck.html
radicand

3
stackoverflow.com/questions/3416867/…มีคำตอบที่ถูกต้องสำหรับ ( autocorrect="off"สำหรับ Safari บนมือถือ - spellcheck=ใช้งานไม่ได้
Chris S

1
ควรจะมีการเติมข้อความอัตโนมัติ = "ปิด" การแก้ไขอัตโนมัติ = "ปิด" autoCapitalize = "ปิด" ตรวจการสะกด = "false"
zaman

208

ใช่ใช้spellcheck="false"ตามที่กำหนดโดยHTML5ตัวอย่างเช่น:

<textarea spellcheck="false">
    ...
</textarea>

1
MDN มีตารางแสดงค่าเริ่มต้นของการตรวจการสะกดสำหรับเบราว์เซอร์และองค์ประกอบต่าง ๆ : developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/
Paul

2
ฉันได้รับข้อผิดพลาด "ไม่รู้จักคุณสมบัติการสะกดคำ DOM คุณหมายถึง spellCheck หรือไม่" ใช้spellCheckดูเหมือนว่าจะพึงพอใจ อาจเป็นเพียงปฏิกิริยา
Shanimal

3
@Shanimal ใช่การตอบสนองจะใช้ camel-case สำหรับแอตทริบิวต์ DOM ดูreactjs.org/docs/introducing-jsx.html
sookie


7

IFrame จะ "เรียกใช้" ตัวตรวจสอบการสะกด (หากมีการตั้งค่าเนื้อหาที่แก้ไขได้จริง) เช่นเดียวกับฟิลด์ข้อความอย่างน้อยใน Chrome


1
+1 สำหรับเคล็ดลับ "ตั้งค่าเนื้อหาที่แก้ไขได้จริง" ซึ่งเป็นเคล็ดลับจริง
AT

4

โค้ดต่อไปนี้ปิดใช้งานสำหรับทุกองค์ประกอบtextareaและinput[type=text]:

(function () {
    function disableSpellCheck() {
        let selector = 'input[type=text], textarea';
        let textFields = document.querySelectorAll(selector);

        textFields.forEach(
            function (field, _currentIndex, _listObj) {
                field.spellcheck = false;
            }
        );
    }

    disableSpellCheck();
})();
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.