无法解决我的转换循环JSON错误

时间:2013-11-29 11:50:30

标签: javascript json

我一直有这个错误:转换循环JSON。

我似乎无法找到错误

function functie()
{
    var footer = document.createElement("footer");
    footer.innerHTML = "<button id='addButton'>" + "+" + "</button>";
    footer.setAttribute("id", "footer");
    document.body.appendChild(footer);

    $(function() { 
        var naam = $("#naam"),
            beschrijving = $("#beschrijving"),
            vervaldatum = $("#vervaldatum"),
            allFields = $([]).add(naam).add(beschrijving).add(vervaldatum);

    function checkRegexp(o, regexp, n) {
        if (!(regexp.test(o.val()))) {
            o.addClass("ui-state-error");
            updateTips(n);
            return false;
        } else {
            return true;
        }
    }

    $("#dialog-form").dialog({

        autoOpen: false,
        height: 300,
        width: 350,
        modal: true,
        buttons: {
            "toevoegen": function() {
                var bValid = true;
                allFields.removeClass("ui-state-error");
                bValid = bValid && checkRegexp(naam, /^[0-9a-zA-Z-" "]+$/, "Medicatie may consist of a-z, 0-9, underscores, begin with a letter.");
                bValid = bValid && checkRegexp(beschrijving, /^[0-9a-zA-Z-" "]+$/, "eg. ui@jquery.com");
                bValid = bValid && checkRegexp($('#datepicker'), /^(0[1-9]|[12][0-9]|3[01])[\/|-|\.](0[1-9]|1[012])[\/|-|\.](19|20)\d\d$/, "Datum field only allow : a-z 0-9");

                if (bValid) {
                    if (arr === null)
                    {
                        var arr = [];
                arr = JSON.parse(localStorage.getItem("data"));
                        var gegevens = [{
                                naam: naam,
                                beschrijving: beschrijving,
                                vervalDatum: $('#datepicker')
                            }];
                        localStorage.setItem("data", JSON.stringify(gegevens));
                    }
                    else
                    {
                        var arr = [];
                arr = JSON.parse(localStorage.getItem("data"));
                        arr.push({
                            naam: naam,
                            beschrijving: beschrijving,
                            vervalDatum: $('#datepicker')
                        });
                        localStorage.setItem("data", JSON.stringify(arr));
                    }
                    $(this).dialog("close");
                }
            },
            annuleren: function() {
                $(this).dialog("close");
            }
        },
        close: function() {
            allFields.val("").removeClass("ui-state-error");
        }
    });

    $("#addButton")
            .click(function() {
                $("#dialog-form").dialog("open");
            });

    $(function() {
        $("#datepicker").datepicker();
    });
});

他给出了这一行的错误:localStorage.setItem(“data”,JSON.stringify(arr));它位于'toevoegen':function(){...}

你们能帮助我吗?

请不要进行投票,我做了很多研究......

1 个答案:

答案 0 :(得分:0)

您希望传递'vervalDatum'(过期日期),但是您传递的是jQuery包装器。你不是要使用$('#datepicker')。val()?并从$('#datepicker')元素中获取值?