common.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. //dom加载完成后执行的js
  2. $(function(){
  3. //全选的实现
  4. $(".check-all").click(function(){
  5. $(".ids").prop("checked", this.checked);
  6. });
  7. $(".ids").click(function(){
  8. var option = $(".ids");
  9. option.each(function(i){
  10. if(!this.checked){
  11. $(".check-all").prop("checked", false);
  12. return false;
  13. }else{
  14. $(".check-all").prop("checked", true);
  15. }
  16. });
  17. });
  18. //ajax get请求
  19. $('.ajax-get').click(function(){
  20. var target;
  21. var that = this;
  22. if ( $(this).hasClass('confirm') ) {
  23. if(!confirm('确认要执行该操作吗?')){
  24. return false;
  25. }
  26. }
  27. if ( (target = $(this).attr('href')) || (target = $(this).attr('url')) ) {
  28. $.get(target).success(function(data){
  29. if (data.status==1) {
  30. if (data.url) {
  31. updateAlert(data.info + ' 页面即将自动跳转~','alert-success');
  32. }else{
  33. updateAlert(data.info,'alert-success');
  34. }
  35. setTimeout(function(){
  36. if (data.url) {
  37. location.href=data.url;
  38. }else if( $(that).hasClass('no-refresh')){
  39. $('#top-alert').find('button').click();
  40. }else{
  41. location.reload();
  42. }
  43. },1500);
  44. }else{
  45. updateAlert(data.info);
  46. setTimeout(function(){
  47. if (data.url) {
  48. location.href=data.url;
  49. }else{
  50. $('#top-alert').find('button').click();
  51. }
  52. },1500);
  53. }
  54. });
  55. }
  56. return false;
  57. });
  58. //ajax post submit请求
  59. $('.ajax-post').click(function(){
  60. var target,query,form;
  61. var target_form = $(this).attr('target-form');
  62. var that = this;
  63. var nead_confirm=false;
  64. if( ($(this).attr('type')=='submit') || (target = $(this).attr('href')) || (target = $(this).attr('url')) ){
  65. form = $('.'+target_form);
  66. if ($(this).attr('hide-data') === 'true'){//无数据时也可以使用的功能
  67. form = $('.hide-data');
  68. query = form.serialize();
  69. }else if (form.get(0)==undefined){
  70. return false;
  71. }else if ( form.get(0).nodeName=='FORM' ){
  72. if ( $(this).hasClass('confirm') ) {
  73. if(!confirm('确认要执行该操作吗?')){
  74. return false;
  75. }
  76. }
  77. if($(this).attr('url') !== undefined){
  78. target = $(this).attr('url');
  79. }else{
  80. target = form.get(0).action;
  81. }
  82. query = form.serialize();
  83. }else if( form.get(0).nodeName=='INPUT' || form.get(0).nodeName=='SELECT' || form.get(0).nodeName=='TEXTAREA') {
  84. form.each(function(k,v){
  85. if(v.type=='checkbox' && v.checked==true){
  86. nead_confirm = true;
  87. }
  88. })
  89. if ( nead_confirm && $(this).hasClass('confirm') ) {
  90. if(!confirm('确认要执行该操作吗?')){
  91. return false;
  92. }
  93. }
  94. query = form.serialize();
  95. }else{
  96. if ( $(this).hasClass('confirm') ) {
  97. if(!confirm('确认要执行该操作吗?')){
  98. return false;
  99. }
  100. }
  101. query = form.find('input,select,textarea').serialize();
  102. }
  103. $(that).addClass('disabled').attr('autocomplete','off').prop('disabled',true);
  104. $.post(target,query).success(function(data){
  105. if (data.status==1) {
  106. if (data.url) {
  107. updateAlert(data.info + ' 页面即将自动跳转~','alert-success');
  108. }else{
  109. updateAlert(data.info ,'alert-success');
  110. }
  111. setTimeout(function(){
  112. $(that).removeClass('disabled').prop('disabled',false);
  113. if (data.url) {
  114. location.href=data.url;
  115. }else if( $(that).hasClass('no-refresh')){
  116. $('#top-alert').find('button').click();
  117. }else{
  118. location.reload();
  119. }
  120. },1500);
  121. }else{
  122. updateAlert(data.info);
  123. setTimeout(function(){
  124. $(that).removeClass('disabled').prop('disabled',false);
  125. if (data.url) {
  126. location.href=data.url;
  127. }else{
  128. $('#top-alert').find('button').click();
  129. }
  130. },1500);
  131. }
  132. });
  133. }
  134. return false;
  135. });
  136. /**顶部警告栏*/
  137. var content = $('#main');
  138. var top_alert = $('#top-alert');
  139. top_alert.find('.close').on('click', function () {
  140. top_alert.removeClass('block').slideUp(200);
  141. // content.animate({paddingTop:'-=55'},200);
  142. });
  143. window.updateAlert = function (text,c) {
  144. text = text||'default';
  145. c = c||false;
  146. if ( text!='default' ) {
  147. top_alert.find('.alert-content').text(text);
  148. if (top_alert.hasClass('block')) {
  149. } else {
  150. top_alert.addClass('block').slideDown(200);
  151. // content.animate({paddingTop:'+=55'},200);
  152. }
  153. } else {
  154. if (top_alert.hasClass('block')) {
  155. top_alert.removeClass('block').slideUp(200);
  156. // content.animate({paddingTop:'-=55'},200);
  157. }
  158. }
  159. if ( c!=false ) {
  160. top_alert.removeClass('alert-error alert-warn alert-info alert-success').addClass(c);
  161. }
  162. };
  163. //按钮组
  164. (function(){
  165. //按钮组(鼠标悬浮显示)
  166. $(".btn-group").mouseenter(function(){
  167. var userMenu = $(this).children(".dropdown ");
  168. var icon = $(this).find(".btn i");
  169. icon.addClass("btn-arrowup").removeClass("btn-arrowdown");
  170. userMenu.show();
  171. clearTimeout(userMenu.data("timeout"));
  172. }).mouseleave(function(){
  173. var userMenu = $(this).children(".dropdown");
  174. var icon = $(this).find(".btn i");
  175. icon.removeClass("btn-arrowup").addClass("btn-arrowdown");
  176. userMenu.data("timeout") && clearTimeout(userMenu.data("timeout"));
  177. userMenu.data("timeout", setTimeout(function(){userMenu.hide()}, 100));
  178. });
  179. //按钮组(鼠标点击显示)
  180. // $(".btn-group-click .btn").click(function(){
  181. // var userMenu = $(this).next(".dropdown ");
  182. // var icon = $(this).find("i");
  183. // icon.toggleClass("btn-arrowup");
  184. // userMenu.toggleClass("block");
  185. // });
  186. $(".btn-group-click .btn").click(function(e){
  187. if ($(this).next(".dropdown").is(":hidden")) {
  188. $(this).next(".dropdown").show();
  189. $(this).find("i").addClass("btn-arrowup");
  190. e.stopPropagation();
  191. }else{
  192. $(this).find("i").removeClass("btn-arrowup");
  193. }
  194. })
  195. $(".dropdown").click(function(e) {
  196. e.stopPropagation();
  197. });
  198. $(document).click(function() {
  199. $(".dropdown").hide();
  200. $(".btn-group-click .btn").find("i").removeClass("btn-arrowup");
  201. });
  202. })();
  203. // 独立域表单获取焦点样式
  204. $(".text").focus(function(){
  205. $(this).addClass("focus");
  206. }).blur(function(){
  207. $(this).removeClass('focus');
  208. });
  209. $("textarea").focus(function(){
  210. $(this).closest(".textarea").addClass("focus");
  211. }).blur(function(){
  212. $(this).closest(".textarea").removeClass("focus");
  213. });
  214. if($('.province').length>0){
  215. $('.province').each(function(){
  216. var ele=$(this);
  217. var provinceurl = BASE_URL+'/Home/Ajax/province';
  218. var selected_provinceid = $(this).attr('province-selected');
  219. //根据province表单上面的属性设置选中的城市id和省份id
  220. $.post(provinceurl,'',function(data){
  221. //var data = jQuery.parseJSON(result);
  222. var prohtml = '';
  223. $.each(data, function(i, value) {
  224. prohtml += '<option value="'+value.provinceid+'" '+(value.provinceid==selected_provinceid?'selected':'')+'>'+value.province+'</option>';
  225. });
  226. ele.empty().append(prohtml);
  227. ele.find('option:selected').change();
  228. });
  229. });
  230. }
  231. // 省份点击,城市更换
  232. $(".province").change(function(){
  233. var provinceid = $(this).val();
  234. var ele = $(this);
  235. if(provinceid){
  236. var cityurl = BASE_URL+'/Home/Ajax/city';
  237. var selected_cityid = $(this).attr('city-selected');
  238. var selected_areaid = $(this).attr('area-selected');
  239. $.post(cityurl,{provinceid:provinceid},function(data){
  240. var cityhtml = '<select class="select city" style="margin-left:10px;" name="cityid" area-selected="'+selected_areaid+'"><option value="0">选择城市</option>';
  241. $.each(data, function(i, value) {
  242. cityhtml += '<option value="'+value.cityid+'">'+value.city+'</option>';
  243. });
  244. cityhtml += '</select>';
  245. ele.parent().find('.city').remove();
  246. ele.parent().find('.area').remove();
  247. ele.after(cityhtml);
  248. var cityselect = ele.parent().find('.city');
  249. if(selected_cityid){ //设置默认的值选中,主要用于编辑的时候存在值,直接读取
  250. if(cityselect.find("option[value='"+selected_cityid+"']").length>0){
  251. cityselect.val(selected_cityid);
  252. cityselect.find('option:selected').change();
  253. }
  254. }
  255. });
  256. }
  257. });
  258. // 城市点击,地区更换
  259. $(document).on('change','.city',function(){
  260. var cityid = $(this).val();
  261. var ele = $(this);
  262. if(cityid){
  263. var areaurl = BASE_URL+'/Home/Ajax/area';
  264. var selected_areaid = $(this).attr('area-selected');
  265. $.post(areaurl,{cityid:cityid},function(data){
  266. var areahtml = '<select class="select area" style="margin-left:10px;" name="areaid">';
  267. $.each(data, function(i, value) {
  268. areahtml += '<option value="'+value.areaid+'">'+value.area+'</option>';
  269. });
  270. areahtml += '</select>';
  271. ele.parent().find('.area').remove();
  272. ele.after(areahtml);
  273. if(selected_areaid){ //设置默认的值选中,主要用于编辑的时候存在值,直接读取
  274. var areaselect = ele.parent().find('.area');
  275. if(areaselect.find("option[value='"+selected_areaid+"']").length>0){
  276. areaselect.val(selected_areaid);
  277. }
  278. }
  279. });
  280. }
  281. });
  282. });
  283. /* 上传图片预览弹出层 */
  284. //标签页切换(无下一步)
  285. function showTab() {
  286. $(".tab-nav li").click(function(){
  287. var self = $(this), target = self.data("tab");
  288. self.addClass("current").siblings(".current").removeClass("current");
  289. window.location.hash = "#" + target.substr(3);
  290. $(".tab-pane.in").removeClass("in");
  291. $("." + target).addClass("in");
  292. }).filter("[data-tab=tab" + window.location.hash.substr(1) + "]").click();
  293. }
  294. //标签页切换(有下一步)
  295. function nextTab() {
  296. $(".tab-nav li").click(function(){
  297. var self = $(this), target = self.data("tab");
  298. self.addClass("current").siblings(".current").removeClass("current");
  299. window.location.hash = "#" + target.substr(3);
  300. $(".tab-pane.in").removeClass("in");
  301. $("." + target).addClass("in");
  302. showBtn();
  303. }).filter("[data-tab=tab" + window.location.hash.substr(1) + "]").click();
  304. $("#submit-next").click(function(){
  305. $(".tab-nav li.current").next().click();
  306. showBtn();
  307. });
  308. }
  309. // 下一步按钮切换
  310. function showBtn() {
  311. var lastTabItem = $(".tab-nav li:last");
  312. if( lastTabItem.hasClass("current") ) {
  313. $("#submit").removeClass("hidden");
  314. $("#submit-next").addClass("hidden");
  315. } else {
  316. $("#submit").addClass("hidden");
  317. $("#submit-next").removeClass("hidden");
  318. }
  319. }
  320. //导航高亮
  321. function highlight_subnav(url){
  322. $('.side-sub-menu').find('a[href="'+url+'"]').closest('li').addClass('current');
  323. }
  324. //获取验证码
  325. function login(data,cb){
  326. $.ajax({
  327. type:"POST",
  328. cache: true,
  329. timeout: 5000,
  330. dataType: 'json',
  331. // jsonp: "jsoncallback",
  332. // url:"{:U('Code/getCode')}",
  333. url: '../../../Application/Home/LogReg/login2.php',
  334. contentType: "application/x-www-form-urlencoded; charset=UTF-8",
  335. data:data,
  336. success: cb,
  337. error: function(jqXHR, textStatus, errorThrown) {
  338. alert("发送验证码出错1:",jqXHR);
  339. // console.log("发送验证码出错:",jqXHR);
  340. },
  341. });
  342. }
  343. //手机、邮箱js验证
  344. function telMatch(tel){
  345. var patrn = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
  346. if (!patrn.exec(tel)) {
  347. return false;
  348. }
  349. return true;
  350. }
  351. function emailMatch(email){
  352. var patrn = /(^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$)/;
  353. if (!patrn.exec(email)) {
  354. return false;
  355. }
  356. return true;
  357. }