Генерация формы динамически в JavaScript - PullRequest
2 голосов
/ 28 февраля 2011

Привет всем Пытается создать форму, состоящую из одной кнопки, которая будет помещаться в ячейку таблицы.Загвоздка в том, что это нужно генерировать динамически в javascript.В таблице есть пара других значений.Сначала я сделал таблицу без части формы, и все работало нормально ... Теперь таблица вообще не генерируется.

Я знаю, что я генерирую форму, но я неконечно почему .... Пожалуйста, помогите!

Спасибо

function populateInventory() {
        clearTable();  //This works
        var artistIndex = byId('artist').selectedIndex;
        var albumIndex = byId('albumSelect').selectedIndex;
        var inventoryArray = inventoryNames[artistIndex][albumIndex];

        for (i = 0; i < inventoryArray.length; i++) {
            var idValue = inventoryArray[i][2];
            var conditionValue = inventoryArray[i][3];
            var priceValue = inventoryArray[i][4];

            var table = byId('table');
            var row = table.insertRow(i + 1);

            var submitCell = row.insertCell(0);
            var idCell = row.insertCell(1);
            var conditionCell = row.insertCell(2);
            var priceCell = row.insertCell(3);

//Begin problem?!
                var form = document.createElement("form");
                form.method = "post";
                form.action = "<?php echo $_SERVER[PHP_SELF];?>";
                var inventoryIdElement = document.createElement("<input name='inventoryIdElement' type='hidden' value='" + idValue + "' ></input>");
                form.appendChild(inventoryIdElement);
                var submitElement = document.createElement("<input name='submit' type='submit' value='Remove' ></input>");
                form.appendChild(submitElement);

            //End problem?!
            var idElement = document.createTextNode(idValue);               
            var conditionElement = document.createTextNode(conditionValue);                 
            var priceElement = document.createTextNode("$" + priceValue);               

            submitCell.appendChild(form);
            idCell.appendChild(idElement);
            conditionCell.appendChild(conditionElement);
            priceCell.appendChild(priceElement);
        }
    }

Ответы [ 2 ]

2 голосов
/ 28 февраля 2011

Рассматривали ли вы использование хорошей библиотеки для манипулирования DOM, такой как jQuery, YUI, Prototype, Dojo, Ext и т. Д.?Это сделало бы вашу жизнь намного легче для такого рода вещей.

0 голосов
/ 28 февраля 2011

Не думаю, что вы правильно используете createElement.Требуется только имя тега, а не вся разметка.

...