2011-10-18 9 views
6

मेरे पास एचटीएमएल टेक्स्ट बॉक्स का एक सेट है जो इनपुट लेता है और जब उपयोगकर्ता 'एड' बटन पर क्लिक करता है तो टेक्स्ट इनपुट लेने और एचटीएमएल में डाली गई स्ट्रिंग को प्रारूपित करने के लिए जावास्क्रिप्ट का उपयोग करता है डिब्बा। इन बक्से में से पहला एक 2 वर्ण संख्या होना चाहिए लेकिन एक खाली भी स्वीकार कर सकते हैं। स्वरूपित तार इस प्रकार दिखाई देगा:एचटीएमएल चयन विकल्प में सफेद स्थान को संरक्षित करना

 
01-ABC-O 
02-DEF-I 

हालांकि मैं खाली संख्या कि अन्य तत्वों

 
-GHI-O 

साथ लाइनें प्रविष्टि के इस प्रकार जब जावास्क्रिप्ट ठीक दिखाई देगा प्रदर्शित करने के लिए कोई तरीका होना चाहिए विकल्प जोड़ता है, लेकिन जब पृष्ठ को पुनः लोड किया जाता है और चयन मानों के साथ दोहराया जाता है (मैं जावा, जेएसपी, और स्ट्रैट्स 1.1 का उपयोग कर रहा हूं तो यह मदद करता है) यह वही मान प्राप्त करता है (रिक्त स्थान संरक्षित) लेकिन व्हाइटस्पेस अब दिखाया नहीं गया है चयन नियंत्रण में (मैंने पृष्ठ स्रोत को देखा है, और ऐसा लगता है कि जब जावास्क्रिप्ट विकल्प जोड़ता है)। मैंने   के लिए रिक्त स्थान को प्रतिस्थापित करने का प्रयास किया है, लेकिन यह अंतरिक्ष के बजाय " nbsp" स्ट्रिंग को प्रिंट करता है। मैंने "प्री" एचटीएमएल ब्लॉक और सीएसएस व्हाइट-स्पेस प्रॉपर्टी का उपयोग करने का भी प्रयास किया है और न ही काम किया है।

मुझे बताएं कि क्या कोई और स्पष्टीकरण की आवश्यकता है।

+0

पर अधिक जानकारी क्या आप एक छोटा कोड नमूना प्रदान कर सकते हैं जो इस समस्या को प्रदर्शित करता है? – Rontologist

+0

ये चुनिंदा बॉक्स जिन्हें आप संदर्भित कर रहे हैं। क्या वे विकल्प विशेषता या उद्घाटन और समापन विकल्प तत्व के बीच मूल्य का उपयोग कर रहे हैं? यदि आप तत्व के बीच की जगह पर भरोसा कर रहे हैं तो अंतरिक्ष संरक्षित नहीं है। – Rontologist

उत्तर

7

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

आपको चुनने के लिए font-family: सीएसएस विशेषता भी लागू करनी चाहिए जो कि सभी चीजों को ठीक से सुनिश्चित करने के लिए मोनो-स्पेस फ़ॉन्ट निर्दिष्ट करता है।

+0

मैं एक मोनो-स्पेस फ़ॉन्ट का उपयोग कर रहा हूं, और ' ' के साथ भ्रम के बारे में खेद है, मुझे बस यह नहीं पता था कि इसे कोड के रूप में कैसे चिह्नित किया जाए ताकि टिप्पणी बॉक्स इसे HTML के रूप में प्रस्तुत न करे, मैं वास्तव में इसका उपयोग कर रहा हूं ' ' – Erik

+0

ठीक है, कोई चिंता नहीं - आपने किस ब्राउज़र में इसका परीक्षण किया है? चूंकि यह क्रोम और आईई 8 में मेरे लिए काम करता है - मैंने अभी एक त्वरित सैनिटी चेक किया है और यह निश्चित रूप से करता है ... – DaveRandom

+0

कृपया आप अपने एचटीएमएल स्रोत को दोबारा जांच लेंगे, और सुनिश्चित करें कि आपने गलती से इसे डबल-एस्केप नहीं किया है? अर्थात। सुनिश्चित करें कि यह ' ' आउटपुट करता है और '& nbsp;'? – DaveRandom

1

आप उस क्षेत्र पर पूर्व सीएसएस शैली का उपयोग कर सकते हैं जिस पर आप मूल्य को आउटपुट कर रहे हैं।

<style type="text/css"> 
    #element { 
     white-space: pre; 
    } 
</style> 

<div id="element"> 
    stuff goes here 
</div> 

इस div तत्व में सभी खाली स्थान के सुरक्षित करेगा (अन्य तत्व प्रकार भी काम करेंगे) और फिर आप गैर तोड़ने अंतरिक्ष उपयोग करने के बारे में चिंता करने की जरूरत नहीं है।

+0

जब मैंने अपनी प्रारंभिक पोस्ट में सीएसएस व्हाइट-स्पेस प्रॉपर्टी की कोशिश करने का उल्लेख किया, तो मेरा मतलब यह था कि मैंने इनलाइन और कक्षा के रूप में प्रयास किया। – Erik

+3

यह चयन विकल्प में काम नहीं करता है – Mayuresh

0

आप यूनिकोड वर्ण 'स्पेस' (U + 0020) के बजाय &nbsp; ("\ u0020")

1

आप पटकथा के माध्यम से इसे जोड़ने के लिए जा रहे हैं का उपयोग कर सकते हैं, तो आप "अंतरिक्ष के लिए मुक्ति कोड का उपयोग करने की आवश्यकता है% A0 "जो आप तो अनएस्केप() के साथ डिकोड

logTypeList[i] = new Option(unescape(" kent Agent".replace(/ /g, "%A0")), "theValue"); 
0
logTypeList[i] = new Option(unescape(" kent Agent".replace(/ /g, "%A0")), "theValue"); 

के बाद से unescape हटाई गई है, आप decodeURI उपयोग कर सकते हैं:

logTypeList[i] = new Option(decodeURI(" kent Agent".replace(/ /g, "%C2%A0")), "theValue"); 

http://www.javascripter.net/faq/mathsymbols.htm

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