2009-10-26 9 views
27

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

उत्तर

3

इस तरह कुछ कैसे?

<input name="myvalue" type="text" onfocus="if(this.value=='enter value')this.value='';" onblur="if(this.value=='')this.value='enter value';">

यह पहली बार ध्यान केंद्रित पर साफ हो जाएगा, लेकिन फिर बाद में केंद्रित पर स्पष्ट के बाद उपयोगकर्ता जब खाली छोड़ दिया यह देखते हुए मूल्य को पुनर्स्थापित करता है उनके मूल्य, में प्रवेश करती है नहीं होगा।

20

कि पूरा करने के लिए, आप onFocus दो घटनाओं और onBlur उपयोग कर सकते हैं:

<input type="text" name="theName" value="DefaultValue" 
    onblur="if(this.value==''){ this.value='DefaultValue'; this.style.color='#BBB';}" 
    onfocus="if(this.value=='DefaultValue'){ this.value=''; this.style.color='#000';}" 
    style="color:#BBB;" /> 
+0

और क्या करता है, तो उपयोगकर्ता vlue प्रवेश नहीं करता है, तो उसे खाली मूल्य या डिफ़ॉल्ट मान पास होगा? मेरा उपयोग मामला भी इसी तरह है, लेकिन मैं चाहता हूं कि जब उपयोगकर्ता कुछ भी नहीं डालता है तो रिक्त मूल्य असाइन करना चाहिए कि हम इसके बारे में कैसे जाते हैं? कोई उपाय? और placholder विशेषता का कोई उपयोग नहीं – mahesh

+0

@ माहेश आप क्या कर सकते हैं इसमें लिखा गया वांछित टेक्स्ट के साथ एक पृष्ठभूमि छवि जोड़ें और क्लिक करें ईवेंट ईवेंट श्रोता जो छवि को अदृश्य बनाता है। –

+0

यदि आपको अभी भी IE9 का समर्थन करना है तो यह एक महान समाधान है! धन्यवाद! –

139

क्या आप का उपयोग कर रहा है एचटीएमएल 5 विशेषता placeholder जो आप अपने इनपुट बॉक्स के लिए एक डिफ़ॉल्ट मान सेट करने देता है क्या करना चाहते हैं:

<input type="text" name="inputBox" placeholder="enter your text here">

यह जो आप खोज रहे हैं उसे प्राप्त करना चाहिए। हालांकि, सावधान रहें क्योंकि प्लेसहोल्डर विशेषता इंटरनेट एक्सप्लोरर 9 और पुराने संस्करणों में समर्थित नहीं है।

+2

एचटीएमएल 5 प्लेसहोल्डर विशेषता के साथ हमारे लिए इस समस्या को हल करता है। घटनाओं को फिर से प्रबंधित करने की आवश्यकता नहीं है। अच्छा जवाब – Ron

+0

इनपुट प्लेसहोल्डर विशेषता IE9 और IE8 में समर्थित नहीं है ... और अधिक के लिए कृपया http://caniuse.com –

+0

क्या उपयोगकर्ता टाइपिंग शुरू करते समय प्लेसहोल्डर गायब होने का कोई तरीका है, लेकिन फ़ील्ड होने पर गायब नहीं होता है 'ध्यान केंद्रित किया।'? –

3

इसे आजमाएं।

<label for="user">user</label> 
<input type="text" name="user" 
onfocus="if(this.value==this.defaultValue)this.value=''"  
onblur="if(this.value=='')this.value=this.defaultValue" 
value="username" maxlength="19" /> 

उम्मीद है कि इससे मदद मिलती है।

<input name="myvalue" id="valueText" type="text" value="ENTER VALUE"> 

यह आपके सबमिट बटन है:

<input type="submit" id= "submitBtn" value="Submit"> 

तो एक js फ़ाइल में इस छोटे jQuery डाल:

+0

के साथ और यदि उपयोगकर्ता vlue दर्ज नहीं करता है, तो क्या यह रिक्त मान या डिफॉल मान पास करेगा? मेरा उपयोग मामला भी इसी तरह है, लेकिन मैं चाहता हूं कि जब उपयोगकर्ता कुछ भी नहीं डालता है तो रिक्त मूल्य असाइन करना चाहिए कि हम इसके बारे में कैसे जाते हैं? कोई उपाय? और placholder विशेषता – mahesh

5

यह मैं समाधान है कि आपके सभी समस्याओं का समाधान करना चाहिए लगता है के रूप में सरल है

//this will submit only if the value is not default 
$("#submitBtn").click(function() { 
    if ($("#valueText").val() === "ENTER VALUE") 
    { 
     alert("please insert a valid value"); 
     return false; 
    } 
}); 

//this will put default value if the field is empty 
$("#valueText").blur(function() { 
    if(this.value == ''){ 
     this.value = 'ENTER VALUE'; 
    } 
}); 

//this will empty the field is the value is the default one 
$("#valueText").focus(function() { 
    if (this.value == 'ENTER VALUE') { 
     this.value = ''; 
    } 
}); 

और यह पुराने ब्राउज़र में भी काम करता है। इसके अलावा यदि आपको आवश्यकता हो तो इसे आसानी से सामान्य जावास्क्रिप्ट में परिवर्तित किया जा सकता है।

+0

का कोई उपयोग नहीं धन्यवाद यह आईई 9 पर काम करता है जिसे हमें समर्थन देना है।तो मैं प्लेसहोल्डर चीज़ का उपयोग नहीं कर सका। टेक्स्ट बॉक्स में मान को एक स्थान पर रखने के लिए मैंने दस्तावेज़ पर बॉक्स में मान सेट करने के लिए jQuery का उपयोग किया था। $ (document) .ready (function() { \t/* सेट खोज इनपुट बॉक्स दस्तावेज़ के लोड पर मूल्य */ \t $ ('# valueText') वैल ("मान दर्ज");। } – atsurti

4

इस के रूप में सरल: <input type="text" name="email" value="e-mail..." onFocus="this.value=''">

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

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