2009-08-28 2 views
0

я динамически присвоить значение текстового поля в JavaScript:Html значение текстового поля включают в себя ""

var html = ''; 
for(var s=0; s++ ; s<10){ 
    html += '<input type="hidden" name="hfstepDescription'+s+'" id="hfstepDescription'+s+'" value="'+ sstepDescriptionHTML +'">'; 

} 

conntent sstepDescriptionHTML может нравится этот

<input type="hidden" name="hfstepDescription11" id="hfstepDescription11" value="test1 <div class="">context1</div>"> 

Но когда я использую document.getElementById('hfstepDescription11').value Я хотел бы получить test1 <div class=, не test1 <div class="">context1</div>

Как я могу получить правильное значение ->test1 <div class="">context1</div>?

+0

Escape цитаты (чтобы они не прерывали контекст значения атрибута) – kangax

+0

Почему этот вопрос является вики-сообществом? –

ответ

0

Я не уверен, где вы устанавливаете sstepDescriptionHTML, но вам действительно нужно, чтобы HTML кодировал значение <input>. Значением будет только то, что можно найти между двойными кавычками, следовательно, почему оно только вернется: test1 <div class=

Отъезд JavaScript's escape() function.

0

Вы должны заменить двойные кавычки одиночными кавычками для атрибута класса в div.

<input type="hidden" name="hfstepDescription11" id="hfstepDescription11" value="test1 <div class=''>context1</div>" /> 
0

Я использую побег() для кодирования значения и с помощью кода PHP TextBox из нижеприведенного декодировать значение текстового поля в

тогда я могу получить правильное значение

$ ул = uniDecode ($ ул» биг-5');

Функция uniDecode ($ str, $ charcode) { $ text = preg_replace_callback ("/% u [0-9A-Za-z] {4} /", toUtf8, $ str); return mb_convert_encoding ($ text, $ charcode, 'utf-8'); } function toUtf8 ($ ar) { foreach ($ ar as $ val) { $ val = intval (substr ($ val, 2), 16); if ($ val < 0x7F) {// 0000-007F $ c. = Chr ($ val); } elseif ($ val < 0x800) {// 0080-0800 $ c. = Chr (0xC0 | ($ val/64)); $ c. = Chr (0x80 | ($ val% 64)); } else {// 0800-FFFF $ c. = Chr (0xE0 | (($ val/64)/64)); $ c. = Chr (0x80 | (($ val/64)% 64)); $ c. = Chr (0x80 | ($ val% 64)); } } return $ c; }

0

Я использую побег() для кодирования значения и с помощью кода PHP TextBox в - http://www.neo.com.tw/archives/000152 - декодировать значение текстового поля в

тогда я могу получить правильное значение

1

Проблемы кодирования; если ваше значение содержит тот же символ, который содержит значение, вам в основном нужно его закодировать или установить значение в противном случае.

Вы можете выбрать два различных пути:

Первый вариант, чтобы избежать значения, прежде чем вставить его в генерируемый HTML:

var escapedValue = value.replace(/&/, "&amp;").replace(/\"/, "&quot;"); 

html += "<input type=\"hidden\" name=\"test\" id=\"test\" value=\"" + value + "\"/>"; 

Другой вариант, чтобы установить значение после добавления вашего HTML в DOM:

document.getElementById("test").value = value; 
Смежные вопросы