Динамически добавляемые текстовые строки - PullRequest
0 голосов
/ 01 июня 2011

Целью кода является создание новой строки ввода каждый раз, когда фокусируется последняя строка, до определенного количества строк. Мне предложили это решение , которое прекрасно работает:

$(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 голосов
/ 02 июня 2011

вы пропустили точку с запятой после lineNum = $('#qc>div').length

почему этот код в функции questionsForm ()?
Вы можете просто поместить его в функцию готовности jquery $(function(){ ... });

Кроме того, как выглядит ваша функция форматирования?

...