2009-02-23 16 views
20

रीसेट करें क्या किसी को पता है कि एक बार जब आप जावास्क्रिप्ट का उपयोग कर इसे संशोधित कर चुके हैं तो इनपुट नियंत्रण के सीमा रंग को रीसेट कैसे करें? फ़ील्ड को हाइलाइट करके प्रमाणीकरण के लिए उपयोगी है जिसमें उनमें गलत या अमान्य डेटा है।इनपुट नियंत्रण के सीमा रंग (एचटीएमएल/जावास्क्रिप्ट)

उदा। सीमा बदलना:

document.getElementById('myinput').style.border = '1px solid red'; 

रीसेट कैसे करें? अगली पंक्ति सीमा पूरी तरह से निकाल देता है ...

document.getElementById('myinput').style.border = ''; 

अगर मैं (जैसे काले या भूरे आदि), यह कुछ ब्राउज़रों/ऑपरेटिंग सिस्टम में अजीब लग सकता है एक विशेष रंग के लिए वापस सीमा रंग रीसेट उस तरह का 'विषय' नियंत्रण ...

धन्यवाद ढेर!

उत्तर

26

शैली विशेषताएँ सेट करने के साथ ऐसा न करें। सीएसएस कक्षाओं का उपयोग करके इसे करें। मैं इसे संभालने के लिए जावास्क्रिप्ट लाइब्रेरी का उपयोग करने की भी सिफारिश करता हूं। यह सिर्फ कोड क्लीनर बनाता है।

सीएसएस विशेषताओं को हटाने समस्याग्रस्त है क्योंकि आप हमेशा नहीं जानते कि उन्हें क्या सेट किया जाना चाहिए। कक्षाओं को जोड़ना और निकालना ... काम करता है।

आपके पास प्रति तत्व एकाधिक कक्षाएं हो सकती हैं इसलिए इस तरह से ऐसा करने के लिए वास्तव में कोई तर्क नहीं है (imho)।

मुझे jQuery में उपयोग किया जाता है, इसलिए मेरा उदाहरण इसके साथ है।

गलत रास्ता:

$("#myinput").css("border", "1px solid red"); 

सही तरीका:

<style type="text/css"> 
.redborder { border: 1px solid red; } 
</style> 

<script type="text/javascript"> 
$("#myinput").addClass("redborder"); 
$("#myinput").removeClass("redborder"); 
$("#myinput").toggleClass("redborder"); 
</script> 
0

आप बस सीमा दूर जाना चाहते हैं? मुझे ऐसा नहीं लगता, जैसा कि आपने कहा है कि मामला नहीं है।

"रीसेट" करने का सही तरीका डिफ़ॉल्ट पर सेट करना है। मुझे यकीन नहीं है कि डिफ़ॉल्ट क्या है, लेकिन मुझे लगता है कि '1px black' या इसी तरह की कुछ है।

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

+0

मैं पृष्ठभूमि रंग का उपयोग कर के बारे में सहमत हैं। मैं वास्तव में दोनों का उपयोग कर रहा हूं, बस मुझे पृष्ठभूमि को साफ़ करने में कोई समस्या नहीं है ... – davidsleeps

+0

मेरा लक्ष्य एक स्पष्ट दृष्टिकोण है। मैं फॉर्म को एक समाशोधन दिनचर्या में डिफ़ॉल्ट रूप से सेट करता हूं और फिर "त्रुटि" रंग से बांधता हूं। यह पृष्ठभूमि रंग और किसी अन्य दृश्य दोनों के साथ सच है। एक बार जब मैं डिफ़ॉल्ट रूप से आश्वस्त हूं, तो मैं फॉर्म जटिलता के आधार पर स्पष्ट() दिनचर्या छोड़ सकता हूं। –

2

यह मेरे लिए काम करता है:

document.getElementById('myinput').style.removeProperty('border'); 

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

  • कोई संबंधित समस्या नहीं^_^