2010-01-09 15 views
5

(कुछ हद तक आधिकारिक) this guide के अनुसार, मैं रेडियो बटन के लेबल को उस रेडियो बटन के लिए भी चयन कर सकता हूं। वे कहते हैं,क्या रेडियो बटन का लेबल चयन भी करता है?

हमेशा प्रत्येक चेकबॉक्स और रेडियो बटन के लिए लेबल का उपयोग करें। वे एक विशिष्ट विकल्प और के साथ सहयोगी पाठ एक बड़ा क्लिक करने योग्य क्षेत्र प्रदान करते हैं।

दुर्भाग्यवश, मैं अपने फॉर्म के लिए यह कार्यक्षमता प्राप्त करने में सक्षम नहीं हूं।

<% form_for(@bet) do |f| %> 
    <%= f.label :bet_type %> 
    <%= f.radio_button :bet_type, "moneyline" %> 
    <%= f.label :bet_type_moneyline, "Moneyline" %> 
    <%= f.radio_button :bet_type, "spread" %> 
    <%= f.label :bet_type_spread, "Spread" %> 
<% end %> 

मैं भी इस की कोशिश की है (क्योंकि यह FormHelper के बजाय FormTagHelper का उपयोग कर उदाहरण का तरीका है):

<% form_for(@bet) do |f| %> 
    <%= radio_button_tag :bet_type, "moneyline" %> 
    <%= label_tag :bet_type_moneyline, "Moneyline" %> 
    <%= radio_button_tag :bet_type, "spread" %> 
    <%= label_tag :bet_type_spread, "Spread" %> 
<% end %> 

लेकिन, मैं अभी भी यह काम करने के लिए नहीं मिल सकता है यहाँ मेरी कोड है। मैं रेल 2.3.5 और रूबी 1.8.7 का उपयोग कर रहा हूँ।

पढ़ने के लिए धन्यवाद, और शायद मदद कर रहा है!

+1

आप हमें क्या उपरोक्त कोड outputs बता सकते हैं होना चाहिए? –

उत्तर

6

रेडियो बटन के लिए यह करने के लिए एक आसान तरीका है लेबल के भीतर इनपुट टैग डालना है, तो तरह है:

<label> 
    <input /> 
    This is an input! 
</label> 

यह आपके लक्ष्य को पूरा करने का एक मान्य तरीका है।

रेल में label सहायक एक ब्लॉक स्वीकार कर सकते हैं, तो आप कर सकता है:

<%= f.label :moneyline do %> 
    <%= f.radio_button :bet_type, "moneyline" %> 
    "Moneyline" 
<% end %> 
0

वूप्स! क्षमा करें सब मुझे एक अपमानजनक तरीके से त्रुटि मिली।

मैंने इस पोस्ट का कोड हाथ से लिखा ... कोई कॉपी-पेस्ट नहीं। चीजों को स्पष्ट रखने के लिए, मैंने कुछ मूल्यों का नाम बदल दिया क्योंकि मैंने जो कोड चलाया था वह थोड़ा गन्दा था (और स्पष्ट रूप से गलत)।

तो, जब गैबी ने मुझे इन कोड हिस्सों के लिए कुछ आउटपुट प्राप्त करने के लिए कहा, तो मैंने उन्हें अपने विचार और voila में फंस लिया! लेबल जो अपने संबंधित रेडियो बटन का चयन करते हैं! पर क्यों?!

ठीक है, यह बात है। आउटपुट को देखते हुए, मुझे एहसास हुआ कि मेरा मूल कोड एचटीएमएल में मूल्यों के लिए लगातार इनपुट.आईडी और लेबल उत्पन्न नहीं कर रहा था।

<%= f.radio_button :bet_type, "moneyline" %> 
<%= f.label :moneyline, "Moneyline" %> 

यह उत्पन्न:

<input id="bet_type_moneyline" name="bet_type type="radio" value="moneyline" /> 
<label for="moneyline">Moneyline</label> 

देखें कैसे input.id और label.for अलग हैं वह कुछ इस तरह देखा?

और जब मैंने अपने प्रश्न में कोड चलाया तो मुझे यह अधिकार मिला।

यह इस तरह काम करने के लिए लगता है: रेडियो बटन टैग तरीके input.id बनाता से यह (OBJECT_NAME + "_" + मूल्य) और यह OBJECT_NAME है से लेबल टैग तरीके label.for बनाता है। और जब वे दो बराबर होते हैं, तो आपको एक चयन लेबल मिलता है।

मुझे आशा है कि यह खोज लाइन के साथ किसी और की मदद कर सकती है।

अपने गियर्स को कुछ भी नहीं पीसने के लिए खेद है!

3

जानते हुए भी नहीं रेल बिल्कुल, एचटीएमएल आवश्यकताओं आसान है: आप इस तरह अपने टैग का निर्माण करना होगा:

<input id="bet_type_moneyline" name="bet_type" type="radio" value="moneyline"> 
<label for="bet_type_moneyline">Moneyline</label> 

तो, सब से पहले, अपने HTML जाँच, अपने उदाहरण में, आप में ... नाम = "bet_type प्रकार =" रेडियो लापता उद्धरण था "...

दूसरे, = के लिए" हमेशा अंक " ए क्षेत्र की आईडी टी।

अब आपको फ़ील्ड bet_type के लिए एक क्लिक करने योग्य लेबल मिला है!

उम्मीद है कि यह मदद करता है!

4
<%= f.radio_button :bet_type, "moneyline" %> 
<%= f.label :moneyline, "Moneyline", :for => "bet_type_moneyline" %> 
+0

बहुत बढ़िया - वास्तव में काम करता है (रेल 4), उच्च-वोट वाले लोगों के विपरीत जहां लेबल पर क्लिक करने से कुछ भी नहीं हुआ। – JosephK

6

आपको एक समाधान मिल सकता है लेकिन यह दूसरों की मदद कर सकता है। मैं रेल 4+ का उपयोग कर रहा हूँ।

आप पैराम में "मान" कुंजी का उपयोग करके Rails' FormHelper's label method का उपयोग करके लेबल को ठीक से क्लिक कर सकते हैं।

label(:post, :privacy, "Public Post", value: "public") 
# => <label for="post_privacy_public">Public Post</label> 

अपने कोड के लिए, यह

<%= f.radio_button :bet_type, "moneyline" %> 
<%= f.label :bet_type, "Moneyline", value: "moneyline" %> 
<%= f.radio_button :bet_type, "spread" %> 
<%= f.label :bet_type, "Spread", value: "spread" %> 

की तरह कुछ आशा है कि यह मदद करता है :)

+0

मुझे "मूल्य" याद आ रहा था, बहुत बहुत धन्यवाद! – AndrewSouthpaw

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