На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU, ANDLL, fatalist
  
> Форма не отправляется, если... , ...заполнить текст-поля (JavaScript)
    Господа, никак не могу понять: почему, если при динамическом заполнении документа элементами формы присвоить значения текстовым полям из ячейки таблицы (в ячейках текст, порой с добавлением спец символов), то форма отказывается отправляться? А вот так проходит:
    ExpandedWrap disabled
          nc=tabZak.rows[i].cells[1];
            str=nc.innerHTML+'<input name=name_'+i+' type=text value="'+i+'"style="display: none">';


    а вот так уже никак:
    ExpandedWrap disabled
          nc=tabZak.rows[i].cells[1];
              str1=nc.innerText;
              str=nc.innerHTML+'<input name=name_'+i+' type=text value="'+str1+'"style="display: none">';

    Почему так происходит и как с этим бороться? :unsure:
    Сообщение отредактировано: SergeS -
      Нужно заменить все кавычки на ".
      [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]
        Mixxx, видишь ли, вся проблема в том, что там как раз кавычек нет, но идею я понял. Спасибо
          для помещения в innerHTML необходимо, чтобы в данных небыло перносов строк, тобишь заменить \n и \r на пустое либо на <br>

          ЗЫ: кавычки тут действительно непричём, хотя и их тоже надо отпарсить...
          Сообщение отредактировано: purpe -
            Malicious Babai
            Цитата
            кавычек нет, но идею я понял.

            Может быть тогда поделитесь с нами, а то лично я ни чё не понял. :wacko:
            purpe,
            Цитата
            purpe, 3.08.04, 17:30
            для помещения в innerHTML необходимо, чтобы в данных небыло перносов строк, тобишь заменить \n и \r на пустое либо на <br>

            Проверял, всё прекасно помещаеться и с переносами строк. Может примерчик приведёте?
              Mixxx, очень просто - кавычки - это тот же спец символ, кодированный специальной последовательностью с целью отображения в HTML-документе... следовательно, стоит заменить встречающиеся спец. символы (к примеру, у меня очень часто в таблице встречается символ диаметра ? ) на их соответствующие коды в формате HTML.
              Кстати, сразу такой вопрос: чтобы несколько символов заменить, эт как их в replace() указывать? через точку с запятой? т.е.:
              ExpandedWrap disabled
                str1=nc.innerText.replace(/\"/g,'"'; /\Ø/g,'<код символа>' );

              или как? (а то у меня справочника никакого нормального под рукой по JavaScript нету, так что приходиться самому всё додумывать). Может вообще подобная задумка со спец символами не пройдет?
              Сообщение отредактировано: Malicious Babai -
                Самое простое это продублировать replace

                ExpandedWrap disabled
                  str1 = nc.innerText.replace(/\"/g,'"').replace(/\Ø/g,'<код символа>');
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0365 ]   [ 16 queries used ]   [ Generated: 25.04.24, 15:08 GMT ]