2011-07-19 14 views
10

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

अद्यतन: क्षमा करें, मुझे नहीं लगता कि मैंने इसे बहुत अच्छी तरह समझाया है। मेरा मतलब प्लेसहोल्डर टेक्स्ट नहीं है। मेरा मतलब है कि इसका कब्जा मूल्य। तो अगर यह खाली है, पर कब्जा कर लिया वैल() इसके लिए, "खाली" होना चाहिए अगर यह भरा है, पर कब्जा कर लिया वैल() यह होना चाहिए के लिए वैल()

+0

http://stackoverflow.com/questions/108207/how-do-i-make-an-html-text-box-show-a-hint-when-empty – Joe

उत्तर

19

आप शुद्ध जे एस उपयोग कर रहे हैं तो आप बस इसे पसंद कर सकते हैं: http://jsfiddle.net/nYtm8/

+0

सबसे छोटी और सरल जीत :) क्या input.value.length == 0 के बजाय यह अलग है यदि हम input.value == '' डालते हैं? – Maverick

+0

मुझे आमतौर पर तारों की बजाय संख्याओं के खिलाफ परीक्षण करना बेहतर लगता है लेकिन यकीन है कि आप भी ऐसा कर सकते हैं :) –

+2

चूंकि 'मान' विशेषता हमेशा एक स्ट्रिंग होती है, बस'! Input.value' हमेशा भी सही होगी (क्योंकि केवल खाली तारों को 'झूठा' करने के लिए वाणिज्य)। – katspaugh

1

आप यह कर सकते हैं कि:

var getValue = function (input, defaultValue) { 
    return input.value || defaultValue; 
}; 
+0

यह बहुत अच्छा है लेकिन यह केवल HTML के लिए है 5 सही? –

+0

@ जैमी डिक्सन, हाँ, यह था। – katspaugh

2

आपको फ़ॉर्म की ऑनसबमिट घटना के लिए एक कॉलबैक फ़ंक्शन सेट और की सामग्री की जाँच कर सकते हैं:

var input = document.getElementById('myInput'); 

if(input.value.length == 0) 
    input.value = "Empty"; 

यहाँ एक डेमो है प्रत्येक क्षेत्र

<form name="my_form" action="validate.php" onsubmit="check()"> 
    <input type="text" name="text1" /> 
    <input type="submit" value="submit" /> 
</form> 

और अपने js में: यह कुछ भी नहीं हैं, तो आप तो स्ट्रिंग "खाली" के साथ इसे भर सकते हैं

function check() { 
    if(document.forms["my_form"]["text1"].value == "") 
     document.forms["my_form"]["text1"].value = "empty"; 
} 
4

मैं आप यही चाहते है अनुमान लगा रहा हूँ ...

जब फॉर्म सबमिट किया गया है, तो जांचें कि क्या मान खाली है और यदि ऐसा है, तो एक मूल्य = खाली भेजें।

यदि ऐसा है, तो आप jQuery के साथ निम्न कार्य कर सकते हैं।

$('form').submit(function(){ 
    var input = $('#test').val(); 
    if(input == ''){ 
     $('#test').val('empty'); 
    }  
}); 

एचटीएमएल

<form> 
    <input id="test" type="text" /> 
</form> 

http://jsfiddle.net/jasongennaro/NS6Ca/

बॉक्स में अपने कर्सर क्लिक करें और फिर प्रपत्र मूल्य प्रस्तुत देखने के लिए एंटर दबाएं।

+0

धन्यवाद जेसन, हालांकि, मैं अकेले जावास्क्रिप्ट के साथ इसे पूरा करने की कोशिश कर रहा था :) – Maverick

2

यह HTML5 के प्लेसहोल्डर या जावास्क्रिप्ट का उपयोग करके किया जा सकता है। चेकआउट this post

1

मुझे लगता है कि इस समस्या को हल करने का सबसे आसान तरीका है, अगर आपको केवल 1 या 2 बॉक्स पर इसकी आवश्यकता है तो HTML इनपुट के "ऑनसमेट" फ़ंक्शन का उपयोग करके।

चेक इस बाहर और मैं समझा जाएगा कि वह क्या करता:

<input type="text" name="val" onsubmit="if(this == ''){$this.val('empty');}" /> 

तो हम HTML पाठ बॉक्स, सौंपा बनाया है यह एक नाम ("वैल" इस मामले में) और फिर हम जोड़ा ऑनसाइट कोड, यह कोड यह देखने के लिए जांचता है कि वर्तमान इनपुट बॉक्स खाली है और यदि यह है, तो फॉर्म सबमिट करने पर यह इसे खाली शब्दों से भर देगा।

कृपया ध्यान दें, इस कोड को भी जब प्लेसहोल्डर टैग के रूप में एचटीएमएल "प्लेसहोल्डर" टैग का उपयोग वास्तव में इनपुट बॉक्स को कोई मान निर्दिष्ट नहीं करता है पूरी तरह से कार्य करना चाहिए।

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