2010-12-15 14 views
14

क्या जावास्क्रिप्ट के माध्यम से टेक्स्टरेरा में वर्तनी जांच अक्षम करना संभव है?क्या जावास्क्रिप्ट के माध्यम से टेक्स्टरेरा में वर्तनी जांच अक्षम करना संभव है?

मैं HTML5 'spellcheck' attribute पर देख रहा हूं, और मैं इसे अपने आप काम करने के लिए प्राप्त कर सकता हूं। हालांकि, मैं जावास्क्रिप्ट के माध्यम से इस विशेषता को बदलने में सक्षम होना चाहता हूं।

ऊपर के लिंक पर उपलब्ध कराए गए दस्तावेज़ पढ़ने के बाद, मैं एक साथ कोड की निम्न लाइनें डाल (एक बड़ी फ़ाइल के स्निपेट; मैं जानता हूँ कि वे अपने दम पर काम नहीं करेगा):

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

और

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

लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। क्या मैंने दस्तावेज गलती की है या दस्तावेज गलत समझा है? (अनजाने में, Google क्रोम में जावास्क्रिप्ट कंसोल एक त्रुटि नहीं लौटा रहा है।) या ऐसा करने के लिए कोई और तरीका है?

उत्तर

20

आप स्ट्रिंग"true" (जो एक true मान है) करने के लिए और करने के लिए यह तय कर रहे हैं स्ट्रिंग"false" (जो भी एक true मूल्य है)।

बूलेन्स का उपयोग करें, स्ट्रिंग्स। उद्धरण से छुटकारा पाएं।

+2

इसके अलावा, 'document.querySelector ("# editor") ' –

+0

के बजाय' document.getElementById ("editor") 'का उपयोग करें वर्तनी जांच पर एचटीएमएल 5 spec से [1] यह कहता है कि * स्ट्रिंग * झूठी पार्स किया गया है। आईओएस 5 पर एक आईपैड पर परीक्षण से पता चलता है कि न तो 'element.spellcheck = false; 'nor' element.setAttribute ('spellcheck', 'false'); 'work। [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#spelling-and-grammar-checking – robocat

+0

ऊपर मेरी टिप्पणी गलत है। हालांकि, आईओएस 5 के साथ एक आईपैड पर परीक्षण यह दिखाना प्रतीत होता है कि न तो 'element.spellcheck = false;' और न ही element.spellcheck = 'false'; 'nor' element.setAttribute ('spellcheck', 'false'); 'work। स्वत: पूर्ण, autocapitalize, स्वत: सुधार करने की कोशिश की कोशिश की, और यह भी काम नहीं लग रहा है। अधिक निराश! – robocat

0

मान लीजिए कि यह एक मूल विशेषता है।

निम्नलिखित पुस्तकालय के बिना काम करना चाहिए:

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

और jQuery के साथ:

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

'setAttribute()' का उपयोग करना आमतौर पर एक बुरा विचार है (यह आईई में टूटा हुआ है और ऐसा नहीं करता है जो बहुत से लोग सोचते हैं)। इसके बजाय संबंधित संपत्ति का उपयोग करना लगभग हमेशा बेहतर होता है। –

2

कम से कम मेरे लिए, स्ट्रिंग/बूलियन भेद एचटीएमएल को प्रभावित नहीं करता जावास्क्रिप्ट जावास्क्रिप्ट व्याख्या में जिम्मेदार बताते हैं "false" == false

आप वर्तनी जांच के साथ समस्याओं में भाग ले रहे हैं क्योंकि रद्द नहीं किया जा रहा है क्योंकि आप इसे textarea का पुनर्मूल्यांकन करने के लिए मजबूर नहीं कर रहे हैं। इस के लिए मजबूर करने के लिए, इस कोड का प्रयास करें:

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

फोकस ब्राउज़र बलों पाठ क्षेत्र फिर से मूल्यांकन करने के लिए, कोई वर्तनी जाँच के साथ इस मामले में। उम्मीद है की वो मदद करदे!

संबंधित मुद्दे