define(function(require, exports, module) { var sessMgr = require("../account/sessionMgr.js"); var resetInterfaceByProfile = function () { var user = sessMgr.current; if (!user) { return; } var p = user.currentProfile; $("input[data-profile-key],select[data-profile-key]").each(function () { var type = this.type; var value = this.value; var svalue = p[this.dataset.profileKey]; if (typeof (svalue) === "undefined") { return; } if (type === "checkbox") this.checked = svalue; else if (type === "radio") { this.checked = svalue == value; } else { $(this).val(svalue); } }); }; sessMgr.on("sessionChanged", resetInterfaceByProfile); sessMgr.on("currentProfileChanged", resetInterfaceByProfile); //初始化状态 resetInterfaceByProfile(); $(document).on("change", "input[data-profile-key],select[data-profile-key]", function () { var u = sessMgr.current; var p = u.currentProfile; var type = this.type; var key = this.dataset.profileKey; if (type === "radio") { var checked = $("input:radio[name=" + this.getAttribute("name") + "]:checked").val(); switch (typeof (p[key])) { case "number": p[key] = parseInt(checked); break; case "boolean": p[key] = checked == 1; break; default: p[key] = checked; } } else if (type === "checkbox") { p[key] = this.checked ^ this.value == "0"; } else if (type === "number") { p[key] = this.valueAsNumber; } else { p[key] = $(this).val(); } sessMgr.save(); }); });