const gameangel = { check_list: new Proxy([], { set(target, prop, value, receiver) { const old_length = target.length; const result = Reflect.set(target, prop, value, receiver); if (old_length !== target.length) { console.log(`length changed : ${old_length} => ${target.length}`); gameangel.change_input(); } return result; } }), btn_more: function(obj) { $(obj).toggleClass('up'); $('#gameangelLoginWrap .agreement_detail').toggle(); }, check_input: function(obj) { const id = $(obj).attr('id'); if (id.toString() === 'gameangel_all_chk') { const checked = $(obj).is(":checked"); // 자기 자신은 따로 해야 무한루프 방지 $('#gameangelLoginWrap .agreement_box input[id!='+id.toString()+']').prop('checked', checked).trigger('change'); $(obj).prop('checked', checked); } else { this.change_input(); } }, check_dup: function(type, name) { const val = $('#' + type).val(); if (!val.length) { return; } if (name.toString() === 'btn_checkid') { body_data = { check_id: name, memid: val.trim(), } } else { body_data = { check_id: name, nick: val.trim(), } } $.ajax({ url: '/sign/check', dataType: "json", type: 'post', data: body_data, success: (response) => { console.log(response); if (typeof (response.result) !== "undefined" && response.result.toString() === 'ok') { if (!this.check_list.includes(name)) { this.check_list.push(name); } if (name.toString() === 'btn_checkid') { $('#gameangel_idbox .msg_txt').text('사용 가능한 이메일입니다.'); } else { $('#gameangel_nick_box .msg_txt').text('사용 가능한 닉네임입니다.'); } } else { $('#gameangel_idbox .msg_txt').text(''); $('#gameangel_nick_box .msg_txt').text(''); alert(response.error ?? 'Error'); } } }) }, input_set: function(name) { const index = this.check_list.indexOf(name); if (index >= 0) { this.check_list.splice(index, 1); } if (name.toString() === 'btn_checkid') { $('#gameangel_idbox .msg_txt').text(''); } else { $('#gameangel_nick_box .msg_txt').text(''); } }, login: function() { this.close(false); change_tab('tab_gameangel'); side_open('#loginWrap'); }, close: function(set_st) { modal_close('#modalGameangelLogin'); if (set_st) { const expireAt = new Date(); expireAt.setHours(23, 59, 59, 999); localStorage.setItem('modal_gameangel', expireAt.getTime().toString()); } }, change_input: function() { const gameangel_pwd = $('#gameangel_pwd'); const gameangel_pwd_r = $('#gameangel_pwd_r'); const terms_service = $('#gameangel_terms_service').is(':checked'); const terms_privacy = $('#gameangel_terms_privacy').is(':checked'); if (this.check_list.length === 2 && gameangel_pwd.val().length >= 4 && gameangel_pwd_r.val().length && terms_service && terms_privacy) { $('#gameangelLoginWrap .btn_save').addClass('on'); } else { $('#gameangelLoginWrap .btn_save').removeClass('on'); } }, } $(document).ready(function () { // 모달 띄우기 설정 if (localStorage.getItem('modal_gameangel') <= Date.now()) { modal_open('#modalGameangelLogin'); } $('#gameangelLoginWrap form').on('submit', function(e) { const form = $(this); e.preventDefault(); console.log("LENGTH ==>> " + gameangel.check_list.length); if (gameangel.check_list.length !== 2) { return false; } const gameangel_pwd = $('#gameangel_pwd'); const gameangel_pwd_r = $('#gameangel_pwd_r'); if (gameangel_pwd.val().toString() !== gameangel_pwd_r.val().toString()) { alert('비밀번호가 일치하지 않습니다'); return false; } this.submit(); }); });