2012-06-07 3 views
1

У меня есть запрос на java-скрипт.Необходимо сохранить пробелы в скрипте java

У меня есть функция addOptions

function addOption(selectbox,text,value) 
{ 
    var optn = document.createElement("OPTION");  
    optn.textContent = text; 
    optn.value = value; 
    selectbox.options.add(optn); 
} 

, в которой параметр «текст» содержит пробелы, и когда я делать optn.textContent = текст; эти белые пробелы усекаются. BUt Я хочу сохранить эти пробелы, поскольку это требование. Я попытался использовать optn.text = text; Кроме того, но не работает, я использую FF 3.6.25

Может кто-нибудь, пожалуйста, помогите здесь

ответ

1

Вы пробовали настройки innerHTML и изменения пространства в неразрывные пробелы:

optn.innerHTML = text.replace(/\s/g," "); 

Демо: http://jsfiddle.net/eNDKv/

+0

Конечно, это будет иметь побочный эффект от синтаксического анализа входного текста как HTML, где он ранее не был, что может быть или не быть желательным в отношении встраивания HTML, особенно если текст поступает из содержимого, отправленного пользователем. –

+0

@ DelanAzabani - дополнительное '.replace (/' в текст опции, JS фактически не запускался.) – nnnnnn

+0

Спасибо большое! Это сработало для меня – Saurabh

0

Попробуйте следующее:

function addOption(selectbox,text,value) 
{  
    selectbox.add(new Option(text, value), null) //add new option to end of "sample" 
} 

Вышеупомянутые работы в FireFox 12.0.

+0

В Chrome, который не сохраняет лишнее свободное пространство. (Я не тестировал его ни в каких других браузерах.) – nnnnnn

+0

@nnnnnn: Я тестировал с помощью Chrome 20.0.1132.27 beta-m, и он сохраняет встроенные пробелы. –

+0

Я запускаю не-бета-версию (19.0.1084.52), но для меня это не сработало: http://jsfiddle.net/Y4Ev4/ – nnnnnn

1
optn.appendChild(document.createTextNode(text)); 

будет работать.

Смежные вопросы