Colorbox无法使用ajax表单

时间:2012-11-24 14:58:00

标签: jquery ajax colorbox

大师,

我需要一些帮助。我不太擅长编码。所以。我尝试使用Colorbox来显示我的一个页面。此页面有一个联系表单。不幸的是,如果我在Colorbox中打开此页面并单击提交按钮,不幸的是Colorbox关闭。 (我真的不明白,但也许Colorbox制作一个简单的http请求而不是ajax请求?)

我需要帮助如何使用colorbox来显示我的联系表单以及如何使其工作。谢谢。

  1. 我的联系表格php:

                                                        联系表!                                                 

    <div class="my_left_box">
                                                <p>name *   </p>
                                                <input type="text" name="name" value="<?php echo $_SESSION['post']['name']?>" id="name" class="validate[required,custom[onlyLetter]]" />
                                                <p>Email* </p>
                                                <input type="text" name="email" value="<?php echo $_SESSION['post']['email']?>" id="email" class="validate[required,custom[email]]" />
                                                <p>subject </p>
                                                <input type="text" name="subject" value="<?php echo $_GET['sbject'];?>" />
                                                <p>Phone</p>
                                                <input type="text" name="phone" value="<?php echo $_SESSION['post']['phone']; unset($_SESSION['post']['phone']);?>" id="phone" class="validate[onlyNumber]" />
                                                <p>Captcha</p>
                                                    <label for="captcha_contact"><?=$_SESSION['n1']?> + <?=$_SESSION['n2']?> =</label><input type="text" class="validate[required,custom[onlyNumber]] captcha_aj" name="captcha" id="captcha" />
    
                                                    </div>                                          
                                                <div class="my_right_box">
                                                <p>Message</p>
                                                <textarea name="message" id="message_aj" rows="6" cols="5" class="validate[required]"><?=$_SESSION['post']['message']?></textarea>
    
                                                <input type="submit" name="button" value="Submit" id="button" class="button medium"/>
                                                     <?=$str?>          <img id="loading" src="images/ajax-load.gif" width="16" height="16" alt="loading" />
                                                        </form>
                                            <?=$success?>               
    
                                            <div id="errOffset">&nbsp;</div>
    </div>
    
    
    
    
    
    
                                            </div>
    
  2. 这是我的ajax片段,如果我直接打开联系表单php,它的效果很好:

    var use_ajax=true;
    $.validationEngine.settings={};
    
    
     $("#contactform").validationEngine({
        inlineValidation: false,
        promptPosition: "centerRight",
        success :  function(){use_ajax=true},
        failure : function(){use_ajax=false;}
     })
    
     $("#contactform").submit(function(e){
         alert("itt");
            if(use_ajax)
            {
                $('#loading').css('visibility','visible');
                $.post('submit_contact.php',$(this).serialize()+'&ajax=1',
    
                    function(data){
                        if(parseInt(data)==-1)
                            $.validationEngine.buildPrompt("#captcha","* Captcha error","error");
    
                        else
                        {
                            $("#ajanlat-form").hide('slow').after('<h1>Thank you,.</h1>');
                        }
    
                        $('#loading').css('visibility','hidden');
                    }
    
                );
            }
            e.preventDefault();
    })
    

1 个答案:

答案 0 :(得分:0)

你是如何通过ColorBox打开弹出窗口的?我建议考虑使用ColorBox的 iFrame 选项,因为这会在自己的“html沙箱”中打开弹出窗口。此外,如果本机Submit事件仍然会导致问题,请考虑使用Jquery捕获它,防止默认行为,并自行启动表单操作。

PS。链接到您的项目将有助于社区为您提供帮助。