goto.js 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. $(".banner-slider").slick({
  2. speed: 1000,
  3. swipe: true,
  4. arrows: false,
  5. });
  6. var emailPattern = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  7. function submit() {
  8. // let loc = $("#loc option:selected").text();
  9. let loc = $("#loc").val();
  10. let h_class = $("#h_class").val();
  11. let size = $("#size").val();
  12. let name = $("#name").val();
  13. let email = $("#email").val();
  14. let phone = $("#phone").val();
  15. let version = $("#version").val();
  16. if (email == null) {
  17. alert('請填寫email');
  18. return;
  19. }else if(!emailPattern.test(email)){
  20. alert('請填寫正確的email格式');
  21. return;
  22. };
  23. if (name == "") {
  24. alert('請填寫姓名');
  25. return;
  26. };
  27. if (phone == "") {
  28. alert('請填寫連絡電話');
  29. return;
  30. } else if(!/^[09]{2}[0-9]{8}$/.test(phone)){
  31. alert('請填寫正確的手機格式');
  32. return;
  33. };
  34. if (loc == null) {
  35. alert('請填寫所在區域');
  36. return;
  37. };
  38. if (h_class == null) {
  39. alert('請填寫房屋類型');
  40. return;
  41. };
  42. if (size == null) {
  43. alert('請填寫房屋實際坪數');
  44. return;
  45. };
  46. let formdata = '';
  47. formdata = '{"email": "' + email + '",'
  48. formdata += '"name": "' + name + '",'
  49. formdata += '"phone": "' + phone + '",'
  50. formdata += '"loc": "' + loc + '",'
  51. formdata += '"h_class": "' + h_class + '",'
  52. formdata += '"version": "' + version + '",'
  53. formdata += '"id": "' + 0 + '",'
  54. formdata += '"time_stamp": "' + 0 + '",'
  55. formdata += '"size": "' + size + '"}';
  56. console.log(formdata);
  57. $('#submitbutton').text('表單送出中,請稍後');
  58. $.ajax({
  59. type: 'POST',
  60. url: 'https://go.hhh.com.tw:8002/deco_request_detail',
  61. data: formdata,
  62. dataType: 'json',
  63. // async: false,
  64. success: function (data) {
  65. console.log('送出成功: ' + data);
  66. if (data == 0) {
  67. if ($('#credit').prop("checked")) {
  68. $.ajax({
  69. type: 'POST',
  70. url: 'https://api.ptt.cx:9999/hhh/mail/deco/v2',
  71. data: formdata,
  72. dataType: 'json',
  73. contentType: 'application/json; charset=utf-8',
  74. async: false,
  75. success: function (res) {
  76. console.log('送出成功');
  77. },
  78. error: function (error) {
  79. console.error(error);
  80. console.log('送出失敗');
  81. }
  82. });
  83. }
  84. // alert("送出成功");
  85. } else if (data == 1) {
  86. alert("此email已填過表單");
  87. } else if (data == 2) {
  88. alert("此phone已填過表單");
  89. } else if (data == 3) {
  90. alert("此email、phone已填過表單");
  91. }
  92. location.href = "./index_complete_line.html";
  93. },
  94. beforeSend: function () {
  95. console.log('beforeSend');
  96. },
  97. complete: function () {
  98. console.log('complete');
  99. },
  100. error: function (jqXHR, textStatus, errorThrown) {
  101. console.log(JSON.stringify(jqXHR));
  102. console.log("AJAX errr: " + textStatus + ' : ' + errorThrown);
  103. console.log('送出失敗: ' + jqXHR.responseText);
  104. alert("送出失敗");
  105. }
  106. });
  107. return false;
  108. }
  109. // $.fn.serializeObject = function () {
  110. // var o = {};
  111. // var a = this.serializeArray();
  112. // o["id"] = 0;
  113. // o["time_stamp"] = "";
  114. // $.each(a, function () {
  115. // if (o[this.name]) {
  116. // if (!o[this.name].push) {
  117. // o[this.name] = [o[this.name]];
  118. // }
  119. // o[this.name].push(this.value || '');
  120. // } else {
  121. // o[this.name] = this.value || '';
  122. // }
  123. // });
  124. // return o;
  125. // };
  126. // $(".contact-form1").submit(function (e) {
  127. // /* var formRef = $('#form1').serializeArray();
  128. // var jsonString = JSON.stringify(formRef);*/
  129. // var jsonInfo = $('.contact-form1').serializeObject();
  130. // var jsonString = JSON.stringify(jsonInfo);
  131. // console.log(jsonString),
  132. // $.ajax({
  133. // type: 'POST',
  134. // url: 'https://go.hhh.com.tw:8002/deco_request_detail',
  135. // data: jsonString,
  136. // dataType: 'json',
  137. // // async: false,
  138. // success: function (data) {
  139. // console.log('送出成功: ' + data);
  140. // if (data == 0) {
  141. // alert("送出成功");
  142. // } else if (data == 1) {
  143. // alert("此email已填過表單");
  144. // } else if (data == 2) {
  145. // alert("此phone已填過表單");
  146. // } else if (data == 3) {
  147. // alert("此email、phone已填過表單");
  148. // }
  149. // location.href ="./index_complete_line.html";
  150. // },
  151. // beforeSend: function () {
  152. // console.log('beforeSend');
  153. // },
  154. // complete: function () {
  155. // console.log('complete');
  156. // },
  157. // error: function (jqXHR, textStatus, errorThrown) {
  158. // console.log(JSON.stringify(jqXHR));
  159. // console.log("AJAX errr: " + textStatus + ' : ' + errorThrown);
  160. // console.log('送出失敗: ' + jqXHR.responseText);
  161. // }
  162. // });
  163. // if ($('#credit').prop("checked")) {
  164. // $.ajax({
  165. // type: 'POST',
  166. // url: 'https://api.ptt.cx:9999/hhh/mail/deco/v2',
  167. // data: jsonString,
  168. // dataType: 'json',
  169. // contentType: 'application/json; charset=utf-8',
  170. // success: function (res) {
  171. // alert('送出成功');
  172. // },
  173. // error: function (error) {
  174. // console.error(error);
  175. // alert('送出失敗');
  176. // }
  177. // });
  178. // }
  179. // return false;
  180. // });
  181. $("*").each(function (index, element) {
  182. // 此元素被點選後執行
  183. $(this).click(function (e) {
  184. // 取得被點選元素的屬性:data-gt-target
  185. var target = $(this).attr("data-gt-target");
  186. var duration = $(this).attr("data-gt-duration");
  187. var offset = $(this).attr("data-gt-offset");
  188. // JS 語法:判斷式
  189. // if (條件) {程式區塊}
  190. // 當條件成立,會執行程式區塊
  191. // 如果 目標有資料 才會執行 { } 內的程式
  192. // 避免出現 undefine (未定義 - 不存在的資料)
  193. if (target) {
  194. //console.log("目標:" + target);
  195. //console.log("時間:" + duration);
  196. //console.log("位移:" + offset);
  197. // 上方位置 = 目標區塊.位移().上方位置
  198. var top = $(target).offset().top;
  199. //console.log("要前往元素的上方位置:" + top);
  200. // 網頁元素.停止().動畫({ 上方捲動:指定元素 - 位移},持續時間)
  201. // parseInt() 將文字轉為數字
  202. $("html").stop().animate({
  203. scrollTop: top - offset
  204. }, parseInt(duration));
  205. }
  206. });
  207. });
  208. // 避免動畫與使用者滾輪衝突
  209. // html 在滾動滾輪時 停止 html 所有效果
  210. $("html").on("mousewheel", function () {
  211. $("html").stop();
  212. });
  213. $(document).ready(function () {
  214. $("#date").datepicker();
  215. });
  216. // // gototop 下滑效果
  217. $(".arrow").hide();
  218. $(window).scroll(function () {
  219. var y = window.scrollY;
  220. if (y > 10) {
  221. $(".arrow").show();
  222. } else {
  223. $(".arrow").hide();
  224. }
  225. });
  226. window.fbAsyncInit = function () {
  227. FB.init({
  228. appId: '1388696554848391', // 填入 FB APP ID
  229. cookie: true,
  230. xfbml: true,
  231. version: 'v11.0'
  232. });
  233. FB.getLoginStatus(function (response) {
  234. statusChangeCallback(response);
  235. });
  236. };
  237. // 處理各種登入身份
  238. function statusChangeCallback(response) {
  239. console.log(response);
  240. var target = document.getElementById("FB_STATUS_2"),
  241. html = "";
  242. // 登入 FB 且已加入會員
  243. if (response.status === 'connected') {
  244. html = "已登入 FB,並加入 WFU BLOG DEMO 應用程式<br/>";
  245. FB.api('/me?fields=id,name,email', function (response) {
  246. console.log('FB API回傳資料: ' + JSON.stringify(response));
  247. if (response.id) {
  248. // 設定欄位預設值
  249. document.getElementById("email").value = response.email;
  250. document.getElementById("name").value = response.name;
  251. // 隱藏FB登入按鈕
  252. document.getElementById("fb_login").style.display = 'none';
  253. }
  254. });
  255. }
  256. // 登入 FB, 未偵測到加入會員
  257. else if (response.status === "not_authorized") {
  258. target.innerHTML = "已登入 FB,但未加入 WFU BLOG DEMO 應用程式";
  259. }
  260. // 未登入 FB
  261. // else {
  262. // target.innerHTML = "未登入 FB";
  263. // }
  264. }
  265. // 點擊登入
  266. $("#fb_login").click(function () {
  267. // 進行登入程序
  268. FB.login(function (response) {
  269. statusChangeCallback(response);
  270. }, {
  271. scope: 'public_profile,email'
  272. },
  273. );
  274. });
  275. // 點擊登出
  276. // $("#FB_logout").click(function() {
  277. // FB.logout(function(response) {
  278. // statusChangeCallback(response);
  279. // });
  280. // });
  281. // 載入 FB SDK
  282. (function (d, s, id) {
  283. var js, fjs = d.getElementsByTagName(s)[0];
  284. if (d.getElementById(id)) return;
  285. js = d.createElement(s);
  286. js.id = id;
  287. js.src = "https://connect.facebook.net/zh_TW/sdk.js";
  288. fjs.parentNode.insertBefore(js, fjs);
  289. }(document, 'script', 'facebook-jssdk'));
  290. $(function() {
  291. var dateToday = new Date();
  292. //jQuery datepicker 設定限制日期最小最大 minDate maxDate hideIfNoPrevNext
  293. $(".datepicker").datepicker({
  294. //顯示上個月日期 及下個月日期 ,但是不可選的。
  295. //default:false
  296. showOtherMonths : true,
  297. // 設置當沒有上一個/下一個可選擇的情況下,隱藏掉相應的按鈕。(默認為不可用)
  298. //配合有設定最大最小時使用
  299. //default:false
  300. hideIfNoPrevNext : true,
  301. minDate : dateToday ,
  302. // 設置一個最大的可選日期。可以是Date對象,或者是數字(從今天算起,例如+7),
  303. //或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d')。
  304. });
  305. });