2012-07-02 17 views
10

मेरी समस्या एचटीएमएल ड्रॉपडाउन से आता है, जो इसके विकल्पों में लगातार कई सफेद जगहों को सुरक्षित रखने में सक्षम नहीं है। यहां एक नमूना टेस्टकेस और परिणाम है। "व्हाइट-स्पेस: प्री" क्लास सीएसएस केवल चयनित तत्व विकल्पों को छोड़कर किसी भी HTML तत्व के लिए काम करता प्रतीत होता है। क्या इस तरह की समस्या की पहचान करने वाले कोई साहित्य या मामले हैं? कोई सुझाव/सलाह देने के लिए उपयोगी"व्हाइट-स्पेस: प्री" का उपयोग करके एचटीएमएल चुनिंदा तत्व विकल्पों में व्हाइटस्पेस को सुरक्षित करें

print "<style>.keepwhitespace { white-space: pre }</style> 
<p class='keepwhitespace'>abc def</p> 
abc def 
<br/> 
<br/>select and options with keepwhitespace 
<select onchange=\"alert('\''+this.value+'\' '+this.value.length)\" class='keepwhitespace'> 
<option class='keepwhitespace'>Any </option> 
<option class='keepwhitespace'>abc def </option> 
<option class='keepwhitespace'> Any </option> 
<option class='keepwhitespace'>abc def </option> 
</select> 
<br/>select with keepwhitespace 
<select onchange=\"alert('\''+this.value+'\' '+this.value.length)\" class='keepwhitespace'> 
<option >Any </option> 
<option >abc def </option> 
<option> Any </option> 
<option>abc def </option> 
</select> 
<br/>options with keepwhitespace 
<select onchange=\"alert('\''+this.value+'\' '+this.value.length)\"> 
<option class='keepwhitespace'>Any </option> 
<option class='keepwhitespace'>abc def </option> 
<option class='keepwhitespace'> Any </option> 
<option class='keepwhitespace'>abc def </option> 
</select>"; 

परिणाम इस प्रकार है:

पहले से लोड के रूप में "पी" टैग एलिमेंट में देखा जा सकता है (और किसी भी अन्य है कि मैं का उपयोग कर की कोशिश की, के साथ अच्छी तरह स्वरूपण पाठ काम किया " खाली स्थान के "सीएसएस शैली। फिर भी चयन नहीं करता है।

As can be seen in the "p" element tag (and any other that I tried using, worked well formatting text with the "whitespace" css style. Yet the select does not.

आइटम मूल्य स्ट्रिंग और स्ट्रिंग की लंबाई को देखने के लिए चयन पर

(लंबाई 7 के बजाय 10 किया जाना चाहिए था, 'एबीसी डीईएफ़' 8 वर्ण है में लंबाई)

on selection to view the item value string and length of string (the length SHOULD have been 10 instead of 7, 'abc def' is 8 chars in length) किसी भी मदद की सराहना की। ;)

LUHFLUH

उत्तर

11

प्रपत्र आदानों आम तौर पर उनके प्रासंगिक देशी ओएस नियंत्रण करने के लिए नक्शे तो वे शैली के लिए मुश्किल हो सकता है। व्हाइट स्पेस को <option> एस में 1 स्पेस में गिरने से सामान्य कार्यवाही सामान्य स्पेस के बजाय &nbsp; का उपयोग करना है।

उदाहरण के लिए। अपने विकल्पों में से एक होगा:

<option>&nbsp;Any&nbsp;&nbsp;</option> 

अधिक कस्टम उपस्थिति के लिए, आप वास्तविक चयन तत्व पूरी तरह से छिपाने के लिए और कस्टम मार्कअप और जावास्क्रिप्ट के साथ बदलना होगा।

+0

धन्यवाद @ टियोलस, आपके सुझाव के साथ अंतर्दृष्टि प्राप्त हुई। मैंने str_replace '$ str1 = str_replace (" ","   ", $ str1 का उपयोग कर ' ' के साथ सभी व्हाइटस्पेस '' को बदल दिया है); ..... 'प्रत्येक विकल्प मूल्य के लिए। किंडा बेकार है कि इस तरह के मुद्दों को कम से कम दस्तावेज नहीं किया गया है ... आपके सुझाव को खोजने में कुछ समय लगा;)! धन्यवाद फिर से – luhfluh

+1

इस समाधान से सावधान रहना एक बात यह है कि क्योंकि यह एक गैर-तोड़ने वाली जगह है, यह तोड़ नहीं जाएगी। इसका मतलब है कि आप जो भी लंबा टेक्स्ट कर रहे हैं वह एक ही पंक्ति पर रहेगा। यदि आप उस पाठ को जानते हैं जिसे आप संशोधित कर रहे हैं तो छोटा है, तो यह समाधान बहुत अच्छा काम करता है। यह मेरे मामले में उपयोगकर्ता इनपुट के साथ काम नहीं करता है जो अक्सर काफी लंबा होता है। – Colin

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