форма, загруженная в "лайтбокс" div с jquery, не будет отправлена ​​с помощью firefox, но работает в сафари - PullRequest
2 голосов
/ 30 августа 2011

Хорошо, я создал лайтбокс, который загружает форму с помощью Jquery. В Safari, Chrome все отлично работает. В FireFOx форма не будет отправлена. Если я использую event.preventDefault (); или если я использую return false; когда вы нажимаете кнопку отправки в FF, ничего не происходит, но, как я сказал в Safari и Chrome, все хорошо. Вот код Jquery:

//LIGHTBOX FUNCTION

$(document).ready(function(){

 $('.litebox').click(function(e){

    e.preventDefault();

    var link = $(this).attr('href');

    if($('#lightbox_bg').length == 0){

        $('body').append('<div id="loader"><img src="images/loader2.gif" /></div>');
        $('body').append('<div id="lightbox_bg"></div>');
        $('body').append('<div id="lightbox_content"></div>'); 

        $('#loader').css({"display":"block"});
        $('#lightbox_bg').fadeIn(300);
        $('#lightbox_content').load(link , function(){

            $(this).fadeIn(300);
            $('#loader').css({"display":"none"}).remove();
        });

        return false;
    } 
});


 $("#close-panel").live('click', function(e){ 

    e.preventDefault();

    $('#lightbox_content').fadeOut(300 , function(){
         $(this).remove();
    });

   $('#lightbox_bg').fadeOut(300, function(){
         $(this).remove();
    });



       return false;

}); 
});

Идеи? Firebug сообщает об отсутствии ошибок. Если я избавлюсь от eventDefault и вернусь false, форма откроется на собственной странице, а не в DIV лайтбокса, и тогда кнопка отправки отправит форму. Чего мне не хватает Я новичок в этом, поэтому, пожалуйста, будьте добры.

спасибо

EDIT

Это форма:

    <div class="grid_1_head"> Create Project <span class="right_shots"><a id="close-panel" href="#"class="create_new_shot">Close this window</a></span></div>
    <div class="hover_1_body"> 

        <p> Enter new project information below to create a new project </p>

        <div class="project_form_text">
        <div class="hover_1_error">           
    <div class="message_error"></div>
    <div class="project_create_success"></div>  

        </div>
            <div class="form_left">     
            <form id="create_project" action="widgets/create_project_process.php" method="post">  

<p>
         <label for="project_name">Project Name:</label>
         <input id="project_name" name="project_name" type="text" placeholder="required" class="field_boarder" value="" size="35px" maxlength="55px"  required/></br>

         <label for="project_description">Project Description:</label>
         <textarea id="project_description" name="project_description" rows="6" cols="36" placeholder="required" class="field_boarder"  maxlength="255px"  required></textarea></br>


         <label for="project_budget">Project Budget:</label>
            <input id="project_budget" name="project_budget" type="text" pattern="^\d+(?:,\d{3})*\.\d{2}$" placeholder="(optional, only if you want to track a budget)" class="field_boarder" value="" size="35px"  maxlength="55" /></br>

</div>



        <div class="login_button_container">
       <input name="create_project" type="submit" class="login_button" value="Create Project"/>



        </div>

    </form>

      </div> 

    </div>

1 Ответ

0 голосов
/ 27 февраля 2012

Полагаю, это как-то связано с event.preventDefault, но я не могу сказать, не увидев всю страницу. Я предполагаю, что ваш .litebox div содержит форму, и любые клики внутри не работают нормально. Если это проблема, вы можете решить ее, используя функцию вкл / выкл для protectDefault

изменить строку

 $('.litebox').click(function(e){

до

 function openLightbox(e){

не забудьте изменить закрытие)}; просто}

Затем настройте его так:

$('.litebox').on('click', openLightbox);

и в конце функции openLightbox добавьте строку

$(this).off('click', openLightbox);

если у вас есть функция, закрывающая лайтбокс, поставьте строку

$(this).on('click', openLightbox);

, который будет активировать нажатие на div .lightbox

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...