Il mio problema deriva dal menu a discesa HTML selezionare non è in grado di conservare più spazi bianchi consecutivi nelle sue opzioni. Ecco un esempio di testcase e risultati. Il "css di classe white-space: pre" sembra funzionare solo per qualsiasi elemento html tranne le opzioni di elemento select. C'è qualche letteratura o casi che identificano tale problema? Eventuali suggerimenti/consigliano utiliMantieni spazi bianchi in html seleziona le opzioni degli elementi usando "white-space: pre" NON funziona
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>";
risultato è simile al seguente:
precaricati Come si può vedere nel tag elemento "p" (e qualsiasi altra che ho provato ad utilizzare, ha lavorato testo ben formattazione con la " spazio bianco" stile css. Eppure la sELECT non.
sulla selezione per visualizzare la stringa di valore di oggetto e la lunghezza della stringa (lunghezza avrebbero dovuto essere 10 invece di 7, 'abc def' è di 8 caratteri in lunghezza)
Qualsiasi aiuto apprezzato. ;)
LUHFLUH
grazie a @Teoulas, hai capito il tuo suggerimento. Ho sostituito tutti gli spazi bianchi '' con ' ' usando str_replace '$ str1 = str_replace (" "," ", $ str1); ..... 'per ogni valore di opzione. Un po 'fa schifo come tali questioni non siano almeno documentate ... ci è voluto un po' per trovare il tuo suggerimento;)! grazie ancora – luhfluh
Una cosa a cui fare attenzione con questa soluzione è che, poiché è uno spazio non interrompibile, non si romperà. Ciò significa che qualsiasi testo lungo con cui lo fai rimarrà su una singola riga. Se sai che il testo che stai modificando è breve, allora questa soluzione funziona alla grande. Non ha funzionato nel mio caso con l'input dell'utente che è molto spesso piuttosto lungo. – Colin