Comunidad de diseño web y desarrollo en internet online

Dropdown+Form[Bootstrap 3]

Citar            
MensajeEscrito el 11 Abr 2014 01:13 pm
Buenos días, tengo un problema con este componente, tras tratear y demas he conseguido meter un form en un dropdown sin demasiados incovenientes, el problema viene a la hora de entrar al formulario, hago clic en el dropdown, se me abre el menu y segun pincho en cualquier campo se me cierra... he intentado mil formas de subsanar ese incoveniente (las que vienen en internet basicamente) y ninguna funciona, luego lo he intentado yo por mi cuenta y nada... os pongo el codigo que estoy usando. Recalco que es una aplicacion basade en Zend Framework.

Codigo del fichero-vista .phtml

Código PHP :

                <div class="dropdown-menu" id="dropdown-login" >
                    <?php
                    if ($this->escapeHtml($this->level) == "annon") {

                        printf("<li><a href=''>Registrate</a></li>");
                        printf("<li class='divider'></li>");
                        printf("<li id='dropdown-login' class='nav-header'><p id='title-log-menu'><span id='icn-log-menu' class='glyphicon glyphicon-log-in'></span>      Inicia sesion</p>", $this->url('login')); 

                        $form = $this->form;
                        $form->prepare();
                        $form->setAttribute('action', $this->url(
                                        'login/process', array(
                                    'action' => 'authenticate',
                                        )
                        ));
// Set the method attribute for the form
                        $form->setAttribute('method', 'post');
                        ?>
                        <?php
                        $formLabel = $this->plugin('formLabel');
                        echo $this->form()->openTag($form);
                        ?>
                    <li>
                        <div class="input-group">
                            <span class="input-group-addon"><span class="glyphicon glyphicon-user"></span> </span>
                            <?php
                            $name = $form->get('username');
                            //echo $formLabel->openTag() . $name->getOption('label');
                            echo $this->formInput($name);
                            echo $this->formElementErrors($name);
                            //echo $formLabel->closeTag();
                            ?></div>
                    </li>
                    <li>
                        <div class="input-group">
                            <span class="input-group-addon"><span class="glyphicon glyphicon-asterisk"></span> </span>
                            <?php
                            $pass = $form->get('password');
                            echo $this->formInput($pass);
                            echo $this->formElementErrors($pass);
                            ?></div>
                    </li>
                    <li>
                        <div class="input-group">
                            <span class="input-group-addon">
                                <?php echo $this->formElement($form->get('rememberme')) ?>
                            </span>
                            <input type="text" class="form-control" placeholder="Recuerdame !" disabled>
                        </div>
                    </li>
                    <li>
                        <?php echo $this->formElement($form->get('submit')); ?></li>

                        <?php
                        echo $this->form()->closeTag();
                        echo '</li>';//Fin dropdown con formulario
                    } else if ($this->escapeHtml($this->level) == "user") {
                        printf("<li><a href='%s'>Cerrar sesion</a></li>", $this->url('login/process', array('action' => 'logout'))); //,$this->url('register_usu')
                    }
                    ?>
                    <!-- dropdown menu links -->
                </div>
            </div>


Esto funciona perfectamente y ahora el cacho de codigo de javaScript que se supone que deberia controlar este efecto que lo he metido en el layout.phtml de la aplicacion entre eqtiquetas <script>

Código Javascript :

$('#dropdown-login').find('form').click(function (e) {
    e.stopPropagation();
  });


Espero que me podais ayudar, un saludo !

Por NiGGa

35 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Abr 2014 10:36 pm
Ammm lo que pasa es que ese form es dinamico :) y el codigo que pones puede que no este listo para recibirlo

Tienes que llamar el documen ready antes de hacer cualquier cosa, y de preferencia pon tu codigo JS antes de cerrar el <body> asi primero se carga el contenido y luego el JS.

Código Javascript :

$(document).ready(function(){
    var form = $('#dropdown-login').find('form');
    
    form.on("click", function(e) {
        e.stopPropagation();
    });
});

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.