2012-11-20 17 views
17

मेरे पास एक फॉर्म है और फॉर्म के अंदर टेक्स्ट_फील्ड_टैग है। यह इस रूप में लिखा है ...टेक्स्ट फ़ील्ड टैग प्लेसहोल्डर रिटर्निंग वैल्यू

<%= text_field_tag "search", :placeholder => 'Enter search term...' %> 

हालांकि, जब एचटीएमएल उत्पन्न होता है यह पेज स्रोत में देता ...

<input id="search" name="search" type="text" value="{:placeholder=&gt;&quot;Enter search 
term...&quot;}" /> 

ऐसा क्यों है यह क्या कर रहा है और मैं इसे कैसे ठीक करूं तो वह प्लेसहोल्डर काम करता है?

उत्तर

36

text_field_tag ​​का दूसरा पैरामीटर मान है। यह दे दो शून्य इसे खाली करने के लिए:

<%= text_field_tag "search", nil, :placeholder => 'Enter search term...' %> 

और यह डिफ़ॉल्ट मान के लिए एक स्ट्रिंग दे:

<%= text_field_tag "search", 'Enter search term...' %> 

jQuery के साथ इसे खाली करने के लिए एक ऑनक्लिक ईवेंट जोड़ें:

<%= text_field_tag "search", 'Enter search term...', :onclick => 'if($(this).val()=="Enter search term..."){$(this).val("");};' %> 

2016 संपादित करें:

आजकल, अधिकांश ब्राउज़र अब HTML 5 placeholder का समर्थन करते हैं, जो हमें थाई करने की अनुमति देता है एक क्लीनर समय सामने आ रहा:

<%= text_field_tag 'search', nil, placeholder: 'Enter search term' %> 
# which produces the following HTML: 
<input type="text" value="" placeholder="Enter search term"> 

jsFiddle link

+0

मेरे द्वारा बेवकूफ गलती। धन्यवाद। – jason328

+0

आपका स्वागत है :) क्या आप मेरी पोस्ट को उत्तर के रूप में देख सकते हैं? – MrYoshiji

+0

हाँ क्षमा करें। मैं तब जा रहा था जब मैं कुछ सीएसएस के साथ खेल रहा था और विचलित हो गया था। – jason328