HTML-ФОРМА Скрытые Поля, добавленные с JavaScript, не ОТПРАВЛЯЮЩИМ

У меня есть форма, где пользователь может ввести ссылку, нажмите кнопку "add link", и та ссылка затем (с помощью jQuery) добавлена к форме как скрытое поле. Проблема, она не ОТПРАВЛЯЕТ, когда я отправляю форму. Это действительно начинает соединять меня. Вещь состоит в том что, если я hardcode скрытое поле в форму, это отправляется, но моя функция не работает по некоторым причинам. Скрытое поле DOES добавляется к моей форме, как я вижу с Firebug, но это просто не отправляется с данными POST.

Только для замечания я использую массив в JavaScript для содержания элементов, пока форма не отправлена, который также отправляет их явно, чтобы пользователь видел то, что они добавили. Я использую [] нотацию на поле "имени" элемента, потому что я хочу, чтобы ссылки питались в массив в PHP.

Вот создание ссылки, которое добавляется к моей форме:

        function make_hidden_element_tag(item_type, item_content, item_id)
{
    return '<input type="hidden" name="' + item_type + '[]" id="hidden_link_' + item_id + '" value="' + item_content + '"/>';

Делает у любого есть идея, почему это не могло бы отправлять. Как указано выше любые трудно кодированные теги, которые почти идентичны вышеупомянутому, хорошо работают, это просто, что этот тег не работает. Вот то, как я добавляю тег к форме с jQuery:

$('#link_td').append( make_hidden_element_tag('links', link, link_array.length - 1));

Я использую платформу Kohana 3, хотя я не уверен, что это имеет любое влияние на это, потому что это ничего действительно не делает со времени, HTML добавляется к странице, и кнопка отправки нажимается.

11
задан dscher 18 May 2010 в 04:51
поделиться

3 ответа

Я только что понял, в чем проблема. Я смущен и сбит с толку. Как уже говорилось, я использую Kohana Framework. Не уверен, что это имеет к этому какое-то отношение, но это может быть важно.

Мои элементы располагались в следующем порядке:

<table>
    <form>
       .............form stuff.......
    </form>
</table>

, и это не позволяло моим добавленным данным присоединяться к массиву POST при отправке формы, даже несмотря на то, что элементы, которые были «жестко закодированы» с использованием класса FORM Kohana, работали нормально. Я только что заметил, что перед всей веткой идет. Я пытался убедиться, что у меня есть Form :: close в моем представлении Kohana, но никогда не думал, что он закрывается сразу после открывающего тега.

Большое спасибо за помощь. Это одна из тех ошибок, которые просто не имели смысла, но я думаю, что это имеет смысл, почему $ .append раньше не работал. Я всегда смотрел и видел, как он добавлялся непосредственно рядом с другими тегами, которые БЫЛИ отправлены с данными POST, и поэтому предполагал, что все это происходит внутри FORM.

Может ли кто-нибудь объяснить, почему необходимо инкапсулировать, а не наоборот, чтобы HTML правильно его отображал? Или это скорее проблема Коханы?

Большое спасибо за помощь, это был своего рода хороший (но крайне разочаровывающий) урок.

2
ответ дан 3 December 2019 в 10:25
поделиться

Уважаемый, используйте плагин jquery для динамического добавления элементов html dom, что такое #link_td ??

2
ответ дан 3 December 2019 в 10:25
поделиться

Если данные не отправляются на сервер, элемент ввода определенно не добавляется в форму.

Попробуйте выполнить следующий фрагмент кода перед отправкой формы:

<form onsubmit="return doBeforeSubmit(this);"> ... </form>

А функция ...

function doBeforeSubmit(form)
{
   var es = form.elements;
   var l = es.length;

   var msgs = [];

   for(var idx = 0; idx < l; idx++)
   {
      var e = es[idx];
      msgs.push('name=' + e.name + ', type=' + e.type + ', value=' + e.value;
   }

   alert(msgs.join('\n'));
   return false;
}

Если вы не получаете свое поле, то «ввод» добавляется не в форму, а где-то еще.

Если ты получишь поле ... нам нужно копать глубже.

5
ответ дан 3 December 2019 в 10:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: