JQuery Overlay загружается только один раз - PullRequest
0 голосов
/ 24 июня 2011

Наложение загружается, когда пользователь отправляет форму ... затем появляется диалоговое окно (выполняется некоторая проверка и т. Д.) .. когда пользователь закрывает ее, чтобы продолжить работу с формой. НЕ МОЖЕТЕ ПЕРЕДАТЬ форму снова. :(

Это фрагмент кода с некоторыми советами по управлению. Можете ли вы мне помочь? Thanx

            <script>
             $(document).ready(function() {
                $("#subtitulo img[title]").tooltip();

                var overlay = $("#overlay"), adOver = {};
                    overlay.overlay({
                        top: 100,
                        mask: {
                            color: '#fff',
                            loadSpeed: 200,
                            opacity: 0.5
                        },
                        closeOnClick: false,
                        load: false,
                        onClose: function() {

                        }
                    });
                adOver = overlay.data('overlay');

                $('#form, #myform').submit( function() {

                    /*$("#overlay").overlay({
                        top: 100,
                        mask: {
                            color: '#fff',
                            loadSpeed: 200,
                            opacity: 0.5
                        },
                        closeOnClick: false,
                        load: true
                    });*/

                    adOver.load();
                    $('#overlayinfo').html('<p><img src=../imagenes/tooltip/loader.gif /></p>');
                    $('#overlayinfo').load('<?= $datosServ[carpeta] ?>/overlay/add.php','add=1&'+sendObjValues('myform'));
                    return false;   
                });
            });
            </script>

Ответы [ 2 ]

0 голосов
/ 24 июня 2011

Вам необходимо добавить обратный вызов к вашей функции $ (''). Load

$ ('# form, #myform'). Submit (function () {

    $("#overlay").overlay({
    top: 100,
    mask: {
    color: '#fff',
    loadSpeed: 200,
    opacity: 0.5
    },
    closeOnClick: false,
    load: true
    });

    adOver.load();
    $('#overlayinfo').html('<p><img src=../imagenes/tooltip/loader.gif /></p>');
    $('#overlayinfo').load('<?= $datosServ[carpeta] ?>/overlay/add.php', 'add=1&'+sendObjValues('myform'), function() {
        $("#overlay").overlay("close");
    });
    return false;
});
0 голосов
/ 24 июня 2011

В конце вашего события отправки вы возвращаете false.Это предотвратит действие по умолчанию для события (отправка формы), а также остановит распространение события на другие функции прослушивания.

Если есть какое-то условие, которое требует оверлея, вы можете использовать событие jqueryметоды для предотвращения действия по умолчанию, только когда вы отображаете оверлей.

$('#form, #myform').submit( function(evt) {
  if(showOverlay){
    evt.preventDefault();
    adOver.load();
    // or you could return false here
  }
}
...