Как добавить тип ввода «файл» в новую строку? - PullRequest
1 голос
/ 27 декабря 2011

Когда пользователь добавляет строку в таблицу, он должен отображать функцию ввода «файл» под столбцом «Изображение» для каждой строки, чтобы пользователь мог выбрать файл для каждой строки.Но он не отображает введенный файл в строке, когда я добавляю строку.

Ниже приведен HTML-код:

   <table id="qandatbl" border="1">
    <tr>
        <th class="image">Image</th>
    </tr>
    </table>

Ниже приведен код jquery

function insertQuestion(form) {   

        var $tr = $("<tr></tr>");
        var $image = $("<td class='image'></td>");

        function image(){

        var $this = $(this);
        var $imagefile = $("<input type='file' name='imageFile' id='imageFile' />").attr('name',$this.attr('name'))
                         .attr('value',$this.val())

            $image.append($imagefile);

        };

        $tr.append($image);
        $('#qandatbl').append($tr);


    }

Ответы [ 3 ]

2 голосов
/ 27 декабря 2011

Я не вижу нигде вызова внутренней функции image(). Более того, почему у вас есть такая внутренняя функция? Исправление, которое, скорее всего, решит вашу проблему.

1 голос
/ 27 декабря 2011

Как-то так, но мой вопрос, что такое this? Поскольку в настоящее время вы генерируете функцию, которая не используется ни в каких последующих действиях, в настоящее время я удалил эту функцию, но не могу понять, что будет $(this).val().

Также вы передаете form параметр, но не используете его?

 function insertQuestion(form) {   

    var $tr = $("<tr></tr>");
    var $image = $("<td class='image'></td>");


    var $imagefile = $("<input type='file' name='imageFile' id='imageFile' />").attr('name',$this.attr('name'))
                     .attr('value',$(this).val())
                     .appendTo($image);


    $tr.append($image);
    $('#qandatbl').append($tr);

}
0 голосов
/ 27 декабря 2011

Ваши текущие фрагменты выглядят странно. Попробуйте это: http://jsfiddle.net/66qAR/

<form id="idOfTheForm" action="?" method="post"> 
<table border="1">
    <tr>
        <th class="image">Image</th>
    </tr>
</table>
</form>

А это javascript:

function insertQuestion(form) {
    var imageField = $('<input />')
        .attr({
            type: 'file',
            name: 'imageFile',
            id: 'imageFile'
        });
    $(form).find('table').append($('<tr />').append(imageField));
}
insertQuestion($('#idOfTheForm'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...