Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.216.190.167] |
|
Сообщ.
#1
,
|
|
|
Господа, никак не могу понять: почему, если при динамическом заполнении документа элементами формы присвоить значения текстовым полям из ячейки таблицы (в ячейках текст, порой с добавлением спец символов), то форма отказывается отправляться? А вот так проходит:
nc=tabZak.rows[i].cells[1]; str=nc.innerHTML+'<input name=name_'+i+' type=text value="'+i+'"style="display: none">'; а вот так уже никак: nc=tabZak.rows[i].cells[1]; str1=nc.innerText; str=nc.innerHTML+'<input name=name_'+i+' type=text value="'+str1+'"style="display: none">'; Почему так происходит и как с этим бороться? |
Сообщ.
#2
,
|
|
|
Нужно заменить все кавычки на ".
[html] <form name=F method=get action="script.cgi"> <TABLE border=1 id=tabZak> <TR> <TD>0"'-0</TD><TD>0-1</TD> </TR> </TABLE> <input type=button name=addInput value="добавить инпут"> <input type=submit> </form> <script> window.onload=function() { document.forms.F.addInput.onclick=function() { var i=0,j=0; nc=document.getElementById('tabZak').rows[i].cells[j]; str1=nc.innerText.replace(/\"/g,'"'); nc.innerHTML=nc.innerHTML+'<input name=name_'+i+' type=text value="'+str1+'"style="">'; } } </SCRIPT> [/html] |
Сообщ.
#3
,
|
|
|
Mixxx, видишь ли, вся проблема в том, что там как раз кавычек нет, но идею я понял. Спасибо
|
Сообщ.
#4
,
|
|
|
для помещения в innerHTML необходимо, чтобы в данных небыло перносов строк, тобишь заменить \n и \r на пустое либо на <br>
ЗЫ: кавычки тут действительно непричём, хотя и их тоже надо отпарсить... |
Сообщ.
#5
,
|
|
|
Malicious Babai
Цитата кавычек нет, но идею я понял. Может быть тогда поделитесь с нами, а то лично я ни чё не понял. purpe, Цитата purpe, 3.08.04, 17:30 для помещения в innerHTML необходимо, чтобы в данных небыло перносов строк, тобишь заменить \n и \r на пустое либо на <br> Проверял, всё прекасно помещаеться и с переносами строк. Может примерчик приведёте? |
Сообщ.
#6
,
|
|
|
Mixxx, очень просто - кавычки - это тот же спец символ, кодированный специальной последовательностью с целью отображения в HTML-документе... следовательно, стоит заменить встречающиеся спец. символы (к примеру, у меня очень часто в таблице встречается символ диаметра ? ) на их соответствующие коды в формате HTML.
Кстати, сразу такой вопрос: чтобы несколько символов заменить, эт как их в replace() указывать? через точку с запятой? т.е.: str1=nc.innerText.replace(/\"/g,'"'; /\Ø/g,'<код символа>' ); или как? (а то у меня справочника никакого нормального под рукой по JavaScript нету, так что приходиться самому всё додумывать). Может вообще подобная задумка со спец символами не пройдет? |
Сообщ.
#7
,
|
|
|
Самое простое это продублировать replace
str1 = nc.innerText.replace(/\"/g,'"').replace(/\Ø/g,'<код символа>'); |