Skip to content

Populate to select-multiple not works #15

Description

@FelixCoutinho

Json:
{"transacao": {"id": 240,"data": "01/08/13","valor": "111.11","fluxo": "ENTRADA","descricao": "fsdfd","conta": {"id": 2},"tags": [{"id": 1},{"id": 2}]}}

Chamada ao jsonform:

$("#form_transacao").populate(data); // data from json

Atente para a seguinte linha:
https://github.com/milfont/jsonform/blob/master/lib/jsonform.js#L142

Na primeira execução do loop, o debug mostra:

$("form#form_transacao.form-horizontal").find("[name='transacao\.tags\[\]\.id']").eq(0)

other.val(value);

E o elemento (select-multiple) é encontrado corretamente.

Mas, na segunda execução do loop, o debug mostra:

$("form#form_transacao.form-horizontal").find("[name='transacao\.tags\[\]\.id']").eq(1)

other.val(value);

Não encontra o elemento.

Não sei por que foi utilizado o .eq(index) na linha:
https://github.com/milfont/jsonform/blob/master/lib/jsonform.js#L145

Mesmo que o elemento fosse encontrado o valor do select-multiple seria substituído, não adicionado de mais um 'option' com 'selected'.

A forma correta de se atribuír um valor a um select-multiple com jquery, não seria?

$(selector).val([1,2,3])

Se executar for como abaixo, e como parece ser o comportamento do jsonform, o comportamento não seria o mesmo:

$(selector).val(1)
$(selector).val(2)
$(selector).val(3)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions