1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Criação de campos de formulário com JSON

Eu estou fazendo um trabalho, por isso não posso postar o código, eu postei algo semelhante.

Mas a minha dificuldade é que eu tenho que colocar na tela campos de checkbox, dependendo da opção que a pessoa clica, esses campos tem a função no onclick de gerar os próximos campos, só que o código ficou repetitivo e eu não sei onde quebrar, por causa do escopo, por exemplo, a primeira opção gera 4 checkbox, quando eu removo e adiciono, parece que ele não vê a função de click. Ficou uma função dentro da outra e quando separa não funciona.

A minha pergunta é esse for repete até 3 vezes para campos diferentes, mas eu não consigo isolar as funções, eu tentei e parou de funcionar. Teria que ser uma função que faz o loop e os eventos de click acessem a função.

Primeira fila de checkbox:

 $('#checkbox input[type="checkbox"]').change(function(){


                        if (!$(this).is(':checked')) {

                         for (i in jsonfile) {
                         for (x in jsonfile[i]['node']) {
                           for (y in json[i]['node'][x]['node']) {
                           $('<div class="classe-do-no' + json[i]['node'][x]['node'][y].id + '"> <input type="checkbox" value="'+ json[i]['children'][x]['node'][y].id + '" )><label for="">' +  json[i]['node'][x]['node'][y].nome +' </label></div>')
                          .appendTo('#div');
                         }
                         }
                         }
                        }else {
                          $("[class^='classe-do-no']").remove();
                        }

Segunda fila, perdeu o evento de click, depois que passa pela função anterior:

$('#proximaetapa input[type="checkbox"]').change(function(){
                     $("#proximaetapa input[type='checkbox']").each(function(index, value) {
                            var idvalue = $(this).val();
                       //Outro for e eu pego alguns valores para montar outro grupo do json

                                                var Itens = [];

                                                   Itens.push({
                                                        id: jsonfile[i]['node'][x]['node'][z].id,
                                                        nome: jsonfile[i]['node'][x]['node'][z].nome
                                                    });

                                                        });
                                                    }
                                                }

                                                var newElement = $('<div class="jsonfile-' + jsonfile[i].id + '"> <input type="checkbox" value="'+ jsonfile[i]['node'][x].id + '" )><label for="">' +  jsonfile[i]['node'][x].nome +' </label></div>').appendTo('#outra div');
                                                newElement.data('Itens', JSON.stringify(Itens))
                                                $('#outra div').append();

                                            }
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags jquery json ou faça a sua própria pergunta.