动态创建的文本框不适用于$ _POST

时间:2013-11-04 17:56:59

标签: javascript php jquery

对于投票系统,人们会看到3个文本框。但他们可以手动添加文本框,以防他们想投票给更多的艺术家。但是这些文本框是使用以下代码通过Javascript动态创建的:

$(document).ready(function(){
    var counter = 4;
    $("#addButton").click(function () {


        var newTextBoxDiv = $(document.createElement('div'))
            .attr("id", 'TextBoxDiv' + counter);

        newTextBoxDiv.after().html('<label>Textbox #'+ counter + ' : </label>' +
                                   '<input type="text" name="textbox[]" id="textbox' + counter + '" value="" style="width:630px; height:30px; font-size:18px; opacity:0.9;" runat=server>');

        newTextBoxDiv.appendTo("#TextBoxesGroup");
        counter++;
        if(counter==11){
            document.getElementById('addButton').style.visibility='hidden';
            document.getElementById('resetButton').style.position="absolute";
            document.getElementById('resetButton').style.left="60px";
            return false;
        } 
    });

    $("#removeButton").click(function () {
        if(counter==1){
            alert("No more textbox to remove");
            return false;
        }   

        counter--;

        $("#TextBoxDiv" + counter).remove();

    });

    $("#getButtonValue").click(function () {

        var msg = '';
        for(i=1; i<counter; i++){
            msg += "\n Textbox #" + i + " : " + $('#textbox' + i).val();
        }
        alert(msg);
    });
});

这些文本框在重定向到'confirm.php'但在confirm.php中生成的表单我无法从动态创建的文本框中获取值。

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

也许您可以尝试将代码更改为以下代码,因为我想知道JQuery是否有问题:

http://jsfiddle.net/jbLZH/

BTW,after()中的newTextBoxDiv.after().html方法完全没用。

希望这可以提供帮助。

答案 1 :(得分:-2)

文本框需要定义“name”属性。