goto.js 10.0 KB

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