预期的半结肠Ajax-Jquery

时间:2018-10-05 14:00:01

标签: javascript jquery ajax asp.net-mvc

所以我有一个Ajax请求,它给了我一个“ Expected;” 错误。

        $(document).ready(function () {
            $("#btnSubmit").bind("click", function () {
                var ids[] = null;
                var dates[] = null;
                createUpdateArrays();
                var url = "/hello/index/";
                $.ajax({
                    type: "Post",
                    url: url,
                    data: { ids: ids, dates: dates },
                    async: false,
                    contentType: "application/json;charset=utf-8",
                    success: function (success) {
                        if (success === true) {
                            alert("HERE WE ARE");
                        }
                        else {
                            alert("eror")
                        }
                    },
                    error: function (e) {
                        alert("eror")
                    }
                });
            });
            createUpdateArrays() {  // Expected ; <---- here
                $('.id').each(function(i) {
                    var rid = $(this).id;
                    $('.planned-date').each(function(x) {
                        if (i===x) {
                            var date = $(this).text;
                            ids.push(rid);
                            dates.push(date);
                        }

                    });
                });
            }; // <--- this is where the createUpdateArrays function ends. 
        });

我指出了代码中错误发生的位置。我不明白这是什么,我觉得我在语法上是正确的。我将分号放在函数结束处。如果有人可以帮助,那就太好了。我觉得这是一个小错误,或者我错过了一些东西。谢谢。

4 个答案:

答案 0 :(得分:3)

您需要将creatUpdateArrays声明为一个函数。

$(document).ready(function () {
            $("#btnSubmit").bind("click", function () {
                var ids[] = null;
                var dates[] = null;
                createUpdateArrays();
                var url = "/hello/index/";
                $.ajax({
                    type: "Post",
                    url: url,
                    data: { ids: ids, dates: dates },
                    async: false,
                    contentType: "application/json;charset=utf-8",
                    success: function (success) {
                        if (success === true) {
                            alert("HERE WE ARE");
                        }
                        else {
                            alert("eror")
                        }
                    },
                    error: function (e) {
                        alert("eror")
                    }
                });
            });
            function createUpdateArrays() {  // Expected ; <---- here
                $('.remedy-id').each(function (i) {
                    var rid = $(this).id;
                    $('.planned-date').each(function (x) {
                        if (i === x) {
                            var date = $(this).text;
                            ids.push(rid);
                            dates.push(date);
                        }

                    });
                });
            };  
        });

或者甚至在文档外部声明该函数为就绪状态,然后仅在就绪状态中引用该功能。

答案 1 :(得分:3)

 $(document).ready(function () {
            $("#btnSubmit").bind("click", function () {
                var ids[] = null;
                var dates[] = null;
                createUpdateArrays();
                var url = "/hello/index/";
                $.ajax({
                    type: "Post",
                    url: url,
                    data: { ids: ids, dates: dates },
                    async: false,
                    contentType: "application/json;charset=utf-8",
                    success: function (success) {
                        if (success === true) {
                            alert("HERE WE ARE");
                        }
                        else {
                            alert("eror")
                        }
                    },
                    error: function (e) {
                        alert("eror")
                    }
                });
            });
        });

function createUpdateArrays() {  // Expected ; <---- here
                $('.remedy-id').each(function(i) {
                    var rid = $(this).id;
                    $('.planned-date').each(function(x) {
                        if (i===x) {
                            var date = $(this).text;
                            ids.push(rid);
                            dates.push(date);
                        }

                    });
                });
            }; // <--- this is where the createUpdateArrays function ends. 

尝试一下。

由于缺少“功能”关键字,因此应使用它来定义功能。

答案 2 :(得分:2)

您需要为function添加createUpdateArrays()并将其定义在$(document).ready()之外

function createUpdateArrays() {  // Expected ; <---- here
                $('.remedy-id').each(function(i) {
                    var rid = $(this).id;
                    $('.planned-date').each(function(x) {
                        if (i===x) {
                            var date = $(this).text;
                            ids.push(rid);
                            dates.push(date);
                        }

                    });
                });
            }; // <--

答案 3 :(得分:1)

您已经不能从createUpdatesArray函数将任何内容推入ID和日期。因为id和date没有定义为全局变量。因此,您的post函数将始终发送null。您需要稍微更改代码。 您可以定义ID和日期,例如:

var ids = {};
var dates = {};

请记住,现在您的函数和“ ids,dates”不在同一范围内。因此,您无法从createUpdatesArray函数向他们推送任何内容。 您必须在<script>document.ready函数之间定义此项目。

您的最后一个代码如下:

var ids = {}; // ids is global now.
var dates = {}; // dates is global now.

$(document).ready(function () {
                $("#btnSubmit").bind("click", function () {
                    //var ids[] = null;
                    //var dates[] = null;
                    createUpdateArrays();
                    var url = "/hello/index/";
                    $.ajax({
                        type: "Post",
                        url: url,
                        data: { ids: ids, dates: dates },
                        async: false,
                        contentType: "application/json;charset=utf-8",
                        success: function (success) {
                            if (success === true) {
                                alert("HERE WE ARE");
                            }
                            else {
                                alert("eror");
                            }
                        },
                        error: function (e) {
                            alert("eror");
                        }
                    });
                });
            });

    function createUpdateArrays() {  // Expected ; <---- here
                    $('.remedy-id').each(function(i) {
                        var rid = $(this).id;
                        $('.planned-date').each(function(x) {
                            if (i===x) {
                                var date = $(this).text;
                                ids.push(rid);
                                dates.push(date);
                            }

                        });
                    });
                }; // <--- this is where the createUpdateArrays function ends.