jquery(document).ready(function($){ var $form_modal = $('.cd-user-modal'), $form_login = $form_modal.find('#cd-login'), $form_signup = $form_modal.find('#cd-signup'), $form_modal_tab = $('.cd-switcher'), $tab_login = $form_modal_tab.children('li').eq(0).children('a'), $tab_signup = $form_modal_tab.children('li').eq(1).children('a'); window.$main_nav = $('.main_nav'); //弹出窗口 window.$main_nav.on('click', function(event){ if( $(event.target).is(window.$main_nav) ) { // on mobile open the submenu $(this).children('ul').toggleclass('is-visible'); } else { // on mobile close submenu window.$main_nav.children('ul').removeclass('is-visible'); //show modal layer $form_modal.addclass('is-visible'); //show the selected form ( $(event.target).is('.cd-signup') ) ? signup_selected() : login_selected(); } }); //关闭弹出窗口 $('.cd-user-modal').on('click', function(event){ if( $(event.target).is($form_modal) || $(event.target).is('.cd-close-form') ) { $form_modal.removeclass('is-visible'); } }); //使用esc键关闭弹出窗口 $(document).keyup(function(event){ if(event.which=='27'){ $form_modal.removeclass('is-visible'); } }); //切换表单 $form_modal_tab.on('click', function(event) { event.preventdefault(); ( $(event.target).is( $tab_login ) ) ? login_selected() : signup_selected(); }); function login_selected(){ $form_login.addclass('is-selected'); $form_signup.removeclass('is-selected'); $tab_login.addclass('selected'); $tab_signup.removeclass('selected'); } function signup_selected(){ $form_login.removeclass('is-selected'); $form_signup.addclass('is-selected'); $tab_login.removeclass('selected'); $tab_signup.addclass('selected'); } login_success(); function login_success(){ $.ajax({ "url":"/ajax.php/member/init", "type":"get", "datatype":"json", "data":{}, "success":function(data){ if(data.status == 100){ var html = '用户中心'; html += ' 退出'; $(".main_nav").html(html); window.$main_nav.unbind("click"); } } }); } var $loginform = $("form[name=login]"); $loginform.submit(function(e){ e.stoppropagation(); var username = $loginform.find("input[name=username]").val(); var password = $loginform.find("input[name=password]").val(); if(!username){ alert("请输入用户名"); $loginform.find("input[name=username]").focus(); return false; } if(!password){ alert("请输入密码"); $loginform.find("input[name=password]").focus(); return false; } $.ajax({ "url":"/ajax.php/member/login", "type":"post", "datatype":"json", "data":{ "username":username, "password":password }, "success":function(data){ if(data.status == 100){ alert(data.message); $form_modal.removeclass('is-visible'); login_success(); }else{ alert(data.message); } } }); return false; }); var $registerform = $("form[name=register]"); $registerform.submit(function(e){ e.stoppropagation(); var username = $registerform.find("input[name=username]").val(); var password = $registerform.find("input[name=password]").val(); var email = $registerform.find("input[name=email]").val(); var repeatpassword = $registerform.find("input[name=repeat-password]").val(); if(!username){ alert("请输入用户名"); $registerform.find("input[name=username]").focus(); return false; } if(!password){ alert("请输入密码"); $registerform.find("input[name=password]").focus(); return false; } if(repeatpassword != password){ alert("重复密码有误"); $registerform.find("input[name=repeat-password]").focus(); return false; } $.ajax({ "url":"/ajax.php/member/register", "type":"post", "datatype":"json", "data":{ "username":username, "password":password, "email" : email }, "success":function(data){ if(data.status == 100){ alert(data.message); location.reload(); }else{ alert(data.message); } } }); return false; }); }); //credits http://css-tricks.com/snippets/jquery/move-cursor-to-end-of-textarea-or-input/ jquery.fn.putcursoratend = function() { return this.each(function() { // if this function exists... if (this.setselectionrange) { // ... then use it (doesn't work in ie) // double the length because opera is inconsistent about whether a carriage return is one character or two. sigh. var len = $(this).val().length * 2; this.setselectionrange(len, len); } else { // ... otherwise replace the contents with itself // (doesn't work in google chrome) $(this).val($(this).val()); } }); };