Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Chamar form_validation em um modal

Boa tarde pessoal. Possuo um botão de cadastro de produtos em minha pagina que quando clicado abre um modal, porem, gostaria de que ao não preencher o campo ele travasse o modal informando que ocorre erro em determinados campos, porém o modal é fechado após enviado.

Parte do modal

<div class="modal fade bs-example-modal-lg" id="modalCliente" >
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Fechar</span></button>
                        <h4 class="modal-title">Produto</h4>
                    </div>
                    <div class="modal-body">

                        <form role="form" method="post" class="formulario" action="<?= base_url("/index.php/Produtos/Produtos/salva") ?>" id="formulario_clientes">
                            <div class="form-group">
                                <label for="nome">Nome</label>
                                <input type="text" class="form-control" id="nome" autofocus name="nome">
                            </div>
                            <div class="form-group">
                                <label for="preco">Preço</label>
                                <input type="number" class="form-control" id="preco" name="preco">
                            </div>
                            <input type="hidden" name="id_cliente" id="id_cliente" value="" />
                        </form>        

                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Fechar</button>
                        <button type="button" class="btn btn-primary" onclick="$('.formulario').submit()">Salvar Alterações</button>
                    </div>
                </div><!-- /.modal-content -->
            </div><!-- /.modal-dialog -->
        </div><!-- /.modal -->

Parte da validação

    public function salva(){
        $this->load->library("form_validation");
        $this->form_validation->set_rules("nome", "nome", "trim|required|min_length[5]|max_length[12]");
        $this->form_validation->set_rules("preco", "preco", "trim|required|numeric");
        $this->form_validation->set_error_delimiters("<p class='alert alert-danger', </p>");

        $sucesso = $this->form_validation->run();

        if($sucesso){
            $this->load->helper(array("form"));
            $produtos = array( 
                "nome" => $this->input->post("nome"),
                "preco" => $this->input->post("preco"),
            );
            $this->load->model("Produtos/produtos_model");
            $this->produtos_model->adicionaProdutos($produtos);
            $this->load->view('menu');
            //$this->load->view('Produtos/cadastroProduto');
        }else{
            $this->load->view('menu');
            $this->load->view('Produtos/cadastroProduto');
        }

    }
2 respostas
solução!

Oi Matheus, tudo bom?

Nesse caso, será necessario um pouco de javascript. Assim conseguimos tomar as decisoes baseado nas ações =)

Ou seja, será necessario criar um script que verifica os campos do seu formulario e abre novamente o modal caso os dados não estejam validos.

Aqui na alura a gente tem a carreira javascript, hoje em dia conhecer javascript é um grande diferencial =)

Qualquer dificuldade, compartilha com a gente!

Abraço e bons estudos.

Boa noite. Obrigado vou tentar ver alguns cursos ... :D