2009-04-21 14 views
6

एक रेल ऐप्लिकेशन में में, मैं उन एक माउस का उपयोग किए बिना डेटा दर्ज करने में सक्षम होना चाहता हूँ।"टैब आदेश" एक रेल एप्लिकेशन

ऐसा करने में सहायता के लिए, मैं ऑर्डर सेट करना चाहता हूं जिसमें कर्सर टेक्स्ट फ़ील्ड, ड्रॉप-डाउन बॉक्स और बटन पर जाता है।

क्या ऐसा करने का कोई तरीका है?

उत्तर

0

मैं यह कर की कोशिश की है नहीं (लेकिन शायद मैं चाहिए)। http://www.w3.org/TR/WCAG10-HTML-TECHS/#forms-keyboard-access जो संक्षेप में tabindex विशेषता के उपयोग का वर्णन करता है: किसी भी तरह, w3.org इस है। मुझे लगता है आप अपने नियंत्रण है, जो एक छोटे से थकाऊ हो सकता है पर व्यक्तिगत रूप से यह स्थापित करने के लिए चाहते हैं, लेकिन नहीं dreadfully तो।

मैं अगर यह काम करेंगे पता नहीं है, लेकिन इतना है कि मौजूदा नियंत्रण के बीच में अतिरिक्त पूरे नियंत्रण सूची हर बार resequence बिना बनाया जा सकता है आप, के, कहते हैं, 100 वेतन वृद्धि उपयोग करने पर विचार हो सकता है।

1

मैं रेल आदमी नहीं हूं, लेकिन मैंने अन्य वेब एमवीसी-आईएसएच फ्रेमवर्क का उपयोग किया है। बस एक चेतावनी :)

जब आप अपने फॉर्म तत्वों को आउटपुट कर रहे हैं, तो आप प्रत्येक (जैसे कक्षा, विनिमय, आदि) में अतिरिक्त विशेषताओं को जोड़ने में सक्षम होना चाहिए। आप पूरा कर सकते हैं क्या आप प्रत्येक के लिए tabindex मूल्य की स्थापना, यह incrementing के रूप में तुम जाओ द्वारा चाहते हैं। परिणामस्वरूप एचटीएमएल इस तरह कुछ दिखता है:

<input type="text" id="myInput" tabindex=1 /> 
<select id="mySelect" tabIndex=2> 
    <option id="myOpt1" value="someValue">Foo!</option> 
</select> 

ऐसा कुछ काम करेगा।

इसके अलावा, यह लग रहा है this question has already been posted की तरह :)

0

मैं नहीं 100% यकीन है, लेकिन मैं आप अपने आप को आदेश का प्रबंधन करने के टैब समारोह का नियंत्रण ले जा सकते हैं लगता है।

छद्म कोड में है कि उस

all_fields = ["field1","field2"] 
current = 0 
if catch event("tab pressed"){ 
current = (current+1) %all_fields.size 
all_fields[current].focus 
} 

की तरह कुछ एक बार तत्व कुंजीपटल आप टाइप कर सकते हैं जो कुछ भी या तीरों का उपयोग एक ड्रॉपडाउन मेनू ब्राउज़ करने के लिए का उपयोग कर चयन किया जाता है होगा।

आप टैबिंडेक्स http://www.w3.org/TR/html401/interact/forms.html का भी उपयोग कर सकते हैं लेकिन मैंने कभी ऐसा नहीं किया है, इसलिए मुझे यकीन नहीं है कि यह ठीक काम करेगा या नहीं।

अंतिम समाधान फ़ील्ड को उस क्रम में रखना होगा जिससे आप लोगों को संपादित करना चाहते हैं।

3
<%= f.text_field :attribute, :tabindex => 1 %> 

तो 2, 3, 4, आदि

संपादित करें: "tab_index" से निकाला गया अंडरस्कोर। बहुत करीब।

def tabindex 
    @tabindex ||= 0 
    @tabindex += 1 
end 
+0

मैं उदाहरण चर के बजाय स्थानीय चर का उपयोग आप कृपया मुझे समझा जाएगा क्यों अपने काम नहीं कर रहा है, तो मैं ले @tabindex के बजाय tabindex – railslearner

8

जेफ पीटरसन लगभग सही है:

इसके अलावा, आप एक सहायक विधि स्वतः सूचकांक को बढ़ाने के लिए कर सकते हैं।

<%= f.text_field :attribute, :tabindex => 1 %> 
3

आप simple_form उपयोग कर रहे हैं यदि आप ऐसा है जैसे कि यह करने की आवश्यकता होगी:

<%= f.input :name, input_html: {:tabindex => 1} %> 
संबंधित मुद्दे