JQuery popup $ .post内部函数不起作用

时间:2014-05-23 12:06:29

标签: javascript jquery post popup

请帮助我使用我的Javascript - $ .post - 弹出脚本。我试着调试下面的脚本,但是我发现它没有进入函数内部(数据)......可能是什么问题?谢谢你的回复。

这是我的代码:

$(function () {
    $('#survey').dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true,
        width: 500,
        resizable: false,
        buttons: {
            Submit: function () {
                if ($("input[name='elso']:checked").val() !== undefined && $("input[name='masodik']:checked").val() !== undefined && $("input[name='harmadik']:checked").val() !== undefined && $("input[name='negyedik']:checked").val() !== undefined) {
                    setCookie('POPsurvey', 'POPsurvey', 30);
                    $.post("process_survey.php", $("#popup_survey").serialize(), alert("hsgh"),

                    function (data) {

                        if (data.db_check == 'fail') {
                            $("#error_message").html("<p>Adatbázisunk nem elérhető. Kérjük, próbálja meg újra.</p>");
                        } else {
                            $('#survey').dialog('close');
                            $('#survey_thanks').dialog('open');
                        }
                    }, "json");
                } else {
                    $("#error_message").html("<p>Kérjük, minden kérdésre adjon választ.</p>");
                }
            }
        }
    });
});

4 个答案:

答案 0 :(得分:0)

$(function () {
$('#survey').dialog({
    bgiframe: true,
    autoOpen: false,
    modal: true,
    width: 500,
    resizable: false,
    buttons: {
        Submit: function () {
            if ($("input[name='elso']:checked").val() !== undefined && $("input[name='masodik']:checked").val() !== undefined && $("input[name='harmadik']:checked").val() !== undefined && $("input[name='negyedik']:checked").val() !== undefined) {
                setCookie('POPsurvey', 'POPsurvey', 30);
                $.post("process_survey.php", $("#popup_survey").serialize(), 

                function (data) {

                    if (data.db_check == 'fail') {
                        $("#error_message").html("<p>Adatbázisunk nem elérhető. Kérjük, próbálja meg újra.</p>");
                    } else {
                        $('#survey').dialog('close');
                        $('#survey_thanks').dialog('open');
                    }
                }, "json");
            } else {
                $("#error_message").html("<p>Kérjük, minden kérdésre adjon választ.</p>");
            }
        }
    }
});

});

函数(数据)必须在序列化之后

答案 1 :(得分:0)

请将该警报删除为post函数中的第三个参数,如此

$.post("process_survey.php", $("#popup_survey").serialize(),
 function (data) {
  if (data.db_check == 'fail') {
    $("#error_message").html("<p>Adatbázisunk nem elérhető. Kérjük, próbálja meg újra.</p>");
  } else {
    $('#survey').dialog('close');
    $('#survey_thanks').dialog('open');
  }
 }, "json");

答案 2 :(得分:0)

问题在于序列化 将此添加到您的代码并使用serializeObject(而不是序列化)

$.fn.serializeObject = function(){
var o = {};
var a = this.serializeArray();
$.each(a, function() {
    if (o[this.name]) {
        if (!o[this.name].push) {
            o[this.name] = [o[this.name]];
        }
        o[this.name].push(this.value || '');
    } else {
        o[this.name] = this.value || '';
    }
});
return o;

};

答案 3 :(得分:0)

你可以这样做

          $.post("process_survey.php", $("#popup_survey").serialize()).done( function (data) {

                    if (data.db_check == 'fail') {
                        $("#error_message").html("<p>Adatbázisunk nem elérhető. Kérjük, próbálja meg újra.</p>");
                    } else {
                        $('#survey').dialog('close');
                        $('#survey_thanks').dialog('open');
                    }
                });