动态附加文本行

时间:2011-06-01 18:04:57

标签: jquery forms dynamic live

代码的目标是在每次聚焦最后一行时创建一个新的输入行,直到达到一定数量的行。 我得到了this solution,这很有效:

$(function() {
    $("#qc>div:last-of-type>input").live('focus', function() {
        $(this).parent().after($(this).parent().clone().attr('id', 'ansInput' + $('#qc>div').length).find('input').val('').end());
    });
});

但我也希望每次更改该行前的文字,因此clone不会删除它

我修改它以编写预先准备好的HTML行,但它不起作用:

function questionsForm() {
    $("#qc>div:last-of-type>input").live('focus', function() {

        lineNum = $('#qc>div').length
        newLine = ("<div id='ansInput{0}'>Answer {0}: <input type='text' name='ans{0}' /></div><!--ans1-->").format(lineNum);

        if ($('#qc>div').length <= 4) { 
            $(this).parent().after(newLine);
        }
    });
}

(预定义.format方法)

我想了解为什么我的代码不起作用,以及如何对其进行分析,但不是完全不同的解决方案(除非我的代码当然有一些基本错误......)

1 个答案:

答案 0 :(得分:0)

您在lineNum = $('#qc>div').length

之后缺少分号

为什么askForm()函数中的代码?
你可以把它放在jquery ready函数$(function(){ ... });

你的格式功能是什么样的?