Listas Vraptor + jquery

1 resposta
david.cs20

Antes de mais nada gostaria de informar que estou me baseando em um exemplo do Washington Botelho por isso alguns campos ainda estão com o mesmo nome do exemplo. http://www.wbotelhos.com/manipulando-listas-com-jquery-e-vraptor-3

Estou querendo criar um formulário a qual ele permita a inserção de listas e sublistas. No meu caso de uso a pessoa poderá cadastrar a refeição e dizer quais alimentos essa refeição terá. Estou tendo dificuldade em ordenar esses dados e ate mesmo criar os campos.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<a >Listagem</a><br/><br/>

&lt;form action="${pageContext.request.contextPath}/filme" method="post"&gt;
    &lt;c:if test="${filme != null && filme.id != null}"&gt;
        &lt;input type="hidden" name="filme.id" value="${filme.id}" /&gt;
    &lt;/c:if&gt;


    &lt;fieldset id="artista-container" style="width: 300px;"&gt;
        &lt;legend&gt;
            Alimentos
            <img    />
        &lt;/legend&gt;

        &lt;c:forEach items="${filme.artistas}" var="artista" varStatus="status"&gt;
            &lt;div class="artista"&gt;
                &lt;label&gt;Nome:&lt;/label&gt;
                &lt;input type="text" name="filme.artistas[${status.index}].nome" value="${artista.nome}" /&gt;
                &lt;input type="hidden" name="filme.artistas[${status.index}].id" value="${artista.id}" /&gt;

                <img    />
            &lt;/div&gt;
        &lt;/c:forEach&gt;
    &lt;/fieldset&gt;<br/>

    &lt;input type="submit" value="Salvar" /&gt;
&lt;/form&gt;

&lt;script type="text/javascript"&gt;
    var campo =
    '&lt;div class="artista"&gt;' +
        '&lt;label&gt;Nome:&lt;/label&gt;' +
        '&lt;input type="text" name="filme.artistas[0].nome" /&gt;' +

        '<img    />' +
    '&lt;/div&gt;';
    var model =
        '&lt;fieldset id="artista-container" style="width: 300px;"&gt;'+
            '&lt;legend&gt;Refeição&lt;/legend&gt;'+
            '&lt;label&gt;Alimento:&lt;/label&gt;'+
            '&lt;input type="text" name="filme.titulo" value="${filme.titulo}" /&gt;<img    />'+
            '<img    />'+
        '&lt;/fieldset&gt;';

    $('.button-remover').live('click', function() {
        $(this).parent().remove();
        reorderIndexes();
    });

    function clona() {
        $('#artista-container').append(model);

    };

    function adicionar() {
        $('#artista-container').append(campo);

    };
    function reorderIndexes() {
        var regex = /\[[0-9]\]/g;

        $('.artista').each(function(index) {
            var $campos = $(this).find('input'),
                $input    ,
                name    ;

            $campos.each(function() {
                $input    = $(this),
                name    = $input.attr('name');

                $input.attr('name', name.replace(regex, '[' + index + ']'));
            });
        });
    };
&lt;/script&gt;

1 Resposta

Lucas_Cavalcanti

o que acontece? o que vc já conseguiu fazer?

Criado 19 de agosto de 2014
Ultima resposta 27 de ago. de 2014
Respostas 1
Participantes 2