javascript在页面重新加载后保留值

时间:2014-04-03 20:10:18

标签: javascript jquery django reload

我有一个普遍的问题。我得到了一个用django制作的表格,如果我使用提交,但并非所有数据都是正确的,或者当缺少必填字段时,页面会跳回到默认状态。 表单中的值将被保存,但不会保存页面布局。

我的javascript改变了布局:

$(function(){
    $('li.fields').slice(1).hide();

    $('ul').on('click', 'li.title', function(){
        $(this).next().slideToggle(200)
    })
});

简短说,我想保留(联合国)崩溃字段的状态。 有人可以指出我正确的方向来实现这一目标(新的javascript)

1 个答案:

答案 0 :(得分:1)

如果您无法使用AJAX(或者不知道如何使用它),您可以在表单中使用隐藏字段。

I've created a fiddle to simulate that

HTML:

<input type="hidden" id="myHiddenField" />

更新了Javascript:

$(function(){
    $('li.fields').slice(1).hide();

    $('ul').on('click', 'li.title', function(){
        $(this).next().slideToggle(200);
        var myString = "[ "; // create a string to simulate an Array
        $('ul li.title').each(function() {
            myString += $(this).is(":visible").toString() + ", "; // iterate your list to take the visible values
        });
        myString += " ]"; // finishes the Array
        $("#myHiddenField").val(myString); // populate your hidden field
    })

    // when you get back from a submit, this hidden field will have some values
    if ($("#myHiddenField").val() != "") {
        var arr = eval($("#myHiddenField").val()); // turn the string into an Array
        for (var i = 0; i < arr.length; i++) { // iterate the Array
            if (!arr[i])
                $("ul li.title").eq(i).hide(); // if the Array item is false, hide the respective li
        }
    }
});
相关问题