-
Notifications
You must be signed in to change notification settings - Fork 11
Description
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 jsonAtente 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)