如何将cookie中的值加载到向导窗格中的表单(dojo)

时间:2012-05-10 14:34:41

标签: javascript cookies dojo

我正在尝试从cookie数据中自动填写表单,如果用户已经访问过该站点并检查了记住我复选框...我的cookie包含一个数据数组...我正在尝试用数组数据填充表单..

这是示例代码

Cookie_check: function () {
            var Cookie_Array = registry.byId("form").getChildren();
            console.log(Cookie_Array);
            var Cookie_Info = new Array();
            dArrayUtil.forEach(Cookie_Array, function (item, i) {
                Cookie_Info.push(item.value);
            });
            console.log(Cookie_Info);
            //set cookie
            cookie("cookie_name", dJson.toJson(Cookie_Info), { expires: 5 });

            //get cookie infor into an array
            var cookie_name = dJson.fromJson(cookie("cookie_name"));
            console.log(cookie_name);

            //fill the form using the cookie information


            dArrayUtil.forEach(cookie_name, function (item) {

                    console.log(item);
                    registry.byId("form").setFormValues(item);

            });

        },

我有几个问题 - 1.如何检查是否已经存在cookie并使用cookie信息设置表单?(在上面的函数中我错过了我将用cookie数据填充表单的情况(数组)) 2.如何在加载向导窗格时传递此功能?

非常感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

这个饼干是如何崩溃的?

require(["dojo/dom-form", "dojo/cookie"], function(domForm, dCookie){

  function beforeFormSubmit() {
    dCookie(
         "formdata",
         domForm.toJson("myForm"),
         {expires: 5}
    );
  }
  function onWizardPaneShow() {
    var formData = dCookie("formdata");
    dojo.query("#myForm input").forEach(function ( inputEl) { 
       if(inputEl.name && formData[inputEl.name])
          inputEl.value = formData[inputEl.name];
    });
  }
});