2010-08-10 13 views
10

टेक्स्ट इनपुट फ़ील्ड रखने का सबसे अच्छा तरीका क्या है जो ग्रे में उस फ़ील्ड में प्रवेश करने के निर्देशों को प्रदर्शित करता है। जब आप उस इनपुट फ़ील्ड पर फ़ोकस करते हैं, तो ग्रे निर्देश टेक्स्ट गायब हो जाता है और आपका इनपुट टेक्स्ट काला दिखाई देता है। यदि आप अपना इनपुट टेक्स्ट मिटते हैं और उस इनपुट से दूर फोकस करते हैं, तो निर्देश ग्रे टेक्स्ट फिर से दिखाई देता है।जावास्क्रिप्ट टेक्स्ट इनपुट फ़ील्ड्स जो निर्देश (प्लेसहोल्डर) टेक्स्ट प्रदर्शित करते हैं

मैंने इसे jQuery के साथ कार्यान्वित करने का प्रयास किया है, लेकिन मुझे विभिन्न ब्राउज़रों के साथ सभी प्रकार के अजीब समस्याएं मिलती हैं। कभी-कभी जब आप एक स्क्रीन वापस जाते हैं, तो निर्देश पाठ काला हो जाता है और अब गायब नहीं होता है, इस तरह के मुद्दे।

क्या इसके लिए मानक जावास्क्रिप्ट लाइब्रेरी है? मुझे कोई नहीं मिला!

ओह, और निर्देश पाठ एक छवि नहीं हो सकता है क्योंकि इसे ब्राउज़र की भाषा वरीयता के आधार पर अलग-अलग भाषाओं में उपलब्ध होना चाहिए।

उत्तर

7

आप this लिंक jquery.use में वॉटरमार्क प्लगइन का उपयोग कर सकते हैं (आप बस लेबल और विभिन्न अग्रभूमि रंग के साथ इनपुट शैली की जरूरत है)।

उदाहरण

$(this).Watermark("your instructions"); 
+0

यह सही है, धन्यवाद! –

-2
<input type="text" name="myText" value="Enter Name" style="color:gray" onfocus="this.value=''"> 
+2

इस सवाल में आवश्यकताओं के सबसे याद करते हैं और पहुंच समस्या है। – Quentin

+1

यह काम नहीं करेगा। क्योंकि इस क्षेत्र पर ध्यान देने के बाद, निर्देश पाठ हमेशा के लिए गायब हो जाता है –

+0

क्षमा करें, दोस्तों। हालांकि मैं गलत तरीका है। – ppshein

0

इनपुट पारदर्शी बनाएं और टेक्स्ट को इसके पीछे रखें। मान ऑनलोड की जांच करें, यह तय करने के लिए कि क्या टेक्स्ट दिखाना चाहिए या नहीं। इसे अदृश्य ऑनफोकस बनाएं।

उदाहरण के लिए: http://dorward.me.uk/tmp/label-work/example.html

+0

मुझे इस विचार से प्यार है। निर्देश पाठ भी सूचकांक भी है, जो सिर्फ समझ में आता है। मैं jQuery वॉटरमार्क प्लगइन के साथ गया हालांकि यद्यपि यह इतना आसान था और एचटीएमएल इतना साफ कर दिया। मुझे पता है कि, उन्होंने इसे उसी तंत्र के साथ कार्यान्वित किया .. –

2

एचटीएमएल

<input type="text" id="user" class="textbox default" value="Enter login name"> 
<input type="password" id="pass" class="textbox"> 

jQuery

$(function(){ 
    $('.textbox').focus(function(){ 
    if (this.value == this.defaultValue) { 
     this.value = ''; 
     $(this).removeClass('default'); 
    }; 
    }).blur(function(){ 
    if (this.value == '') { 
     this.value = this.defaultValue; 
     $(this).addClass('default'); 
    }; 
    });​ 
}); 

demo

21

आपको इसके लिए जावास्क्रिप्ट की आवश्यकता नहीं है।

एचटीएमएल 5:

<input type="text" id="email" name="email" placeholder="Enter your email address"> 

इस आधुनिक ब्राउज़रों में काम करता है। यदि आप अपने पेज पर modernizr.js जोड़ते हैं तो यह सभी ब्राउज़रों में काम करेगा।

+0

जैसा कि मैं समझता हूं, आधुनिकता केवल यह पता लगाती है कि वर्तमान ब्राउज़र में प्लेसहोल्डर जैसी HTML5 सुविधा मौजूद है या नहीं। फॉलबैक तंत्र प्रदान करने के लिए आप पर निर्भर है। मैंने ऊपर दिए गए jquery लाइब्रेरी को सही उत्तर के रूप में चुना है वास्तव में HTML5 के प्लेसहोल्डर विशेषता (यदि आप चाहते हैं) का उपयोग करता है और वापस अपने जावास्क्रिप्ट तंत्र पर पड़ता है। –

0

प्लेसहोल्डर कोड - नाम चर का

नाम, है

var name=$("#con-name"); 
var nameval="Enter your name"; 



name.val(nameval); 
name.focus(function(){ 
    if (this.value == nameval) { 
     this.value = ''; 
    }; 
    }).blur(function(){ 
     if (this.value == '') {  
     this.value = nameval; 
    }; 
}); 
//submit to clear code 
$("#sub_con_page").click(function() { 
    if(name.val()==nameval) { 
     name.val(""); 
    } 
}); 

DEMO LINK

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