POST表单使用ajax然后触发colorbox

时间:2012-01-12 22:52:43

标签: jquery ajax colorbox

我正在尝试使用jquery-ajax发布表单,同时在彩色框弹出窗口中加载隐藏的div。

要加载的隐藏div称为“#hidden-div”。

到目前为止,我有以下代码:

有关如何使其发布所有值然后使用隐藏的div触发颜色框弹出的任何想法?

以下代码不会发布数据而不会触发弹出:(

  <script>
$(document).ready(function() {
    $("#frmSS4").submit(function(event,dontCheck) {
        if(dontCheck === true) return;
        $.ajax({
        type     : 'POST',
        url      : "http://clientes.cupon0km.com/form.php?form=4",
        data     : $(this).serialize(),
        dataType : 'jsonp'
    });
        event.preventDefault(); 
        $("#hidden-div").colorbox({inline:true, width:"auto", fixed:true});
    });
});
</script>

4 个答案:

答案 0 :(得分:1)

脚本有点模糊,但如果我说得对,你应该尝试这样的事情:

<script>
$(document).ready(function() {
$("#frmSS4").submit(function(event,dontCheck) {
   if(dontCheck === true) return;
   $.ajax({
   type: 'POST',
   url: "http://clientes.cupon0km.com/form.php?form=4",
   data: $(this).serialize(),
       success: function(data) {
               $("#dinero-form").trigger("submit",true); // What is this?
               $.colorbox({html: $('#hidden-div').html()});
       }
   });
   event.preventDefault(); 
});
});
</script>

答案 1 :(得分:1)

用以下代码替换你的ajax语句:

  $.ajax({
       type     : 'POST',
       url      : "http://clientes.cupon0km.com/form.php?form=4",
        data     : $(this).serialize(),
        dataType : 'jsonp',
        success: function( data ) {
           $.colorbox({inline:true, width:"auto", fixed:true, href:"#hidden-div"});
        }

    });

答案 2 :(得分:0)

要发送表单数据,您可以使用.serialize()序列化表单中的所有数据,而不是一次只输入一次:

   data: { email: $('#email').val(), CustomFields_17_4: $('#CustomFields_17_4').val(),     CustomFields_12_4: $('#CustomFields_12_4').val(), CustomFields_13_4:     $('#CustomFields_13_4').val(), CustomFields_16_4: $('#CustomFields_16_4').val() },

可以改为:

   data: $(this).serialize(),

使用this引用表单(因为此代码位于表单的事件处理程序中)。

要打开一个colorbox实例,您只需要在success回调函数中调用初始化代码。

.serialize()的文档:http://api.jquery.com/serialize

<script>
$(document).ready(function() {
    $("#frmSS4").submit(function(event,dontCheck) {
        if(dontCheck === true) return;
        $.ajax({
            type     : 'POST',
            url      : "http://clientes.cupon0km.com/form.php?form=4",
            data     : $(this).serialize(),
            dataType : 'jsonp'//this line will allow you to do cross-domain AJAX requests (I believe this is one of your problems)
        });
        event.preventDefault(); 
        //initialize colorbox here, Antonio Languna has an example in his answer
    });
});
</script>

答案 3 :(得分:0)

用户html而不是href as bellow

  

$(#divid).colorbox({inline:true,width:“auto”,   固定:真,HTML:数据});