2011-01-19 10 views
14

मैं अपने वेब प्रोजेक्ट के उपयोगकर्ता अनुभव को क्रमिक रूप से बढ़ाने के लिए कुछ HTML5 फॉर्मेट सुविधाओं का उपयोग कर रहा हूं। विशेष रूप से ऑटोफोकस है, मैं इसे एक मोडल (लाइटबॉक्स) संवाद में उपयोग करना चाहता हूं जो उपयोगकर्ताओं को टैग दर्ज करने की अनुमति देता है। मौजूदा टैग वहां हो सकते हैं।एचटीएमएल 5 autofocus = autoselect?

ऑटोफोकस का समर्थन करने वाला एकमात्र ब्राउज़र क्रोम 9 है, हालांकि जब मैं इसका परीक्षण करता हूं तो यह फ़ील्ड पर ध्यान केंद्रित करता है, लेकिन क्षेत्र में सभी मौजूदा टेक्स्ट स्वचालित रूप से भी चुनता है। मुझे उम्मीद नहीं थी या ऑटोज़क्लेक्ट चाहिए, मैं ऑटोफोकस चाहता हूं।

क्या मेरी उम्मीद गलत है या क्रोम गलत है?

+0

यहां वर्णित अभिगम्यता के मुद्दों के लिए नजर रखने के योग्य मूल्य http://webaim.org/blog/future-web-accessibility-html5- इनपुट-extensions/ –

उत्तर

6

ऑटोफोकस और एचटीएमएल 5 के बारे में यहाँ और अधिक पढ़ें। यह लागू करने के लिए काफी सरल और दर्द रहित दिखता है और कहता है कि यह सुविधा एफएक्स और आईई के अलावा सबकुछ में समर्थित है।

+0

फ़ील्ड पर ध्यान केंद्रित करना चाहिए, ठीक है, स्निपेट केवल ऑटोफोकस विशेषता के साथ एक इनपुट है: <इनपुट प्रकार = "टेक्स्ट" मान = "" id = "टैग" नाम = "टैग" वर्ग = "सुझाव" ऑटोफोकस />। आपके द्वारा शामिल उदाहरण में समझदारी होती है, फिर भी यह एक खाली क्षेत्र से संबंधित है। जैसे मैंने कहा, फोकस काम करता है, यह कर्सर को मैदान में रखता है, फिर भी यदि कोई है तो यह सभी मौजूदा टेक्स्ट भी चुनता है। यही वह नहीं है जो मैं चाहता हूं या अपेक्षित हूं। – Ferdy

+0

तो क्या आप कर्सर को पहले से मौजूद पाठ के अंत में जोड़ना चाहते हैं? यदि ऐसा है, तो यह ऑटोफोकस नहीं है और मेरे ज्ञान के लिए जावास्क्रिप्ट की आवश्यकता होगी ... भले ही, ऑटोफोकस यह काम कर रहा है। जैसे एली ने कहा, ऑटोफोकस काम कर रहा है। जेएस में देखने की कोशिश करो। क्षमा करें, इच्छा है कि मैं और अधिक मदद कर सकता हूं। –

+0

दरअसल, मुझे परवाह नहीं है कि यह शुरुआत या पाठ के अंत में रखा गया है, इसे मैदान पर ध्यान देना चाहिए। इसे उस फ़ील्ड में सभी टेक्स्ट का चयन नहीं करना चाहिए, क्योंकि इसका मतलब है कि उपयोगकर्ता टाइपिंग शुरू करते समय किसी मौजूदा मान को ओवरराइट करते हैं।मैं इस बात से सहमत नहीं हूं कि ऑटोफोकस का अर्थ यह होना चाहिए कि मौजूदा पाठ स्वचालित रूप से चुना जाता है, लेकिन हे, अगर वह वास्तव में spec के अनुसार है, तो हो। – Ferdy

-2

यह टेक्स्ट का चयन करना है, input.focus() यह भी करता है। http://php.quicoto.com/autofocus-in-html5/

आप कोड हम देख सकता का एक टुकड़ा है, तो हम आगे सहायक हो करने में सक्षम हो सकता है:

+3

input.select() टेक्स्ट का चयन करता है, लेकिन input.focus() को केवल – Maxym

2

HTML5 specification से, फ़ोकस करने वाले चरण निर्धारित नहीं करते हैं कि टेक्स्ट का चयन किया जाना चाहिए या नहीं। उपयोगकर्ता एजेंटों को न तो आवश्यक है और न ही पाठ का चयन करने के लिए मना किया गया है। विशेष रूप से, यहां प्रासंगिक focusing step है:

उपयोगकर्ता एजेंट विगेट्स ध्यान केंद्रित करने के लिए प्रासंगिक प्लेटफ़ॉर्म-विशिष्ट परंपराओं आवेदन कर सकते हैं।

नोट: उदाहरण के लिए, कुछ प्लेटफॉर्म उस फ़ील्ड पर केंद्रित होने पर टेक्स्ट फ़ील्ड की सामग्री का चयन करते हैं।

6

क्रोम निर्णय लिया कि वे गलत थे और क्रोम 36.

में इस व्यवहार को बदल मैं जानता हूँ कि यह क्योंकि मैं गलत तरीके से भी पाठ का चयन के लिए जावास्क्रिप्ट .focus() और html ऑटोफोकस पर निर्भर था। अब इसे टेक्स्ट फ़ील्ड में चुनने और फोकस करने के लिए एक .select() की आवश्यकता है। अच्छा है कि अब हम जो चाहते हैं उसके विशिष्ट हो सकते हैं :-)

तो अब क्रोम उदा। फ़ायरफ़ॉक्स।

+0

अद्यतन के लिए धन्यवाद! – Ferdy