form-main.html 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. <div class="news-form">
  2. <div class="text-center title">
  3. <h4>線上諮詢</h4>
  4. <p>與我們合作,馬上展開全新的創作里程碑</p>
  5. </div>
  6. <form>
  7. <div class="mb-4 align-items-center">
  8. <label for="nameValue">
  9. 聯絡人/公司名稱 <span class="text-danger">*</span>
  10. </label>
  11. <div class="mt-2">
  12. <input type="text" class="form-control" id="nameValue" placeholder="請輸入聯絡人姓名或公司名稱" required>
  13. </div>
  14. </div>
  15. <div class="row mb-4 align-items-center">
  16. <label for="phoneValue">
  17. 聯絡電話 <span class="text-danger">*</span>
  18. </label>
  19. <div class="mt-2">
  20. <input type="tel" class="form-control" id="phoneCode" placeholder="請輸入手機或公司電話" required>
  21. </div>
  22. <!-- <div class="mt-2 col-sm-4">
  23. <select id="countryCode" class="form-select">
  24. <option selected>選擇國碼</option>
  25. </select>
  26. </div>
  27. <div class="mt-3 mt-sm-2 col-sm-8">
  28. <input type="tel" class="form-control" id="phoneCode" placeholder="e.g., 988 888 888" required>
  29. </div> -->
  30. </div>
  31. <div class="mb-4 align-items-center">
  32. <label for="emailValue">
  33. 電子信箱 <span class="text-danger">*</span>
  34. </label>
  35. <div class="mt-2">
  36. <input type="email" class="form-control" id="emailValue" placeholder="請輸入 E-mail" required>
  37. </div>
  38. <div class="invalid-feedback">
  39. Please choose a username.
  40. </div>
  41. </div>
  42. <!-- <div class="mb-4 align-items-center">
  43. <label for="dateValue">
  44. 預計執行日期 <span class="text-danger">*</span>
  45. </label>
  46. <div class="mt-2 d-flex align-items-center">
  47. <input type="date" id="dateValue" name="dateValue" class="px-2"
  48. style="border:1px solid #ced4da; border-radius: 3px;" required />
  49. </div>
  50. </div> -->
  51. <div class="mb-4 align-items-center">
  52. <label for="captionValue">
  53. 需求說明 <span class="text-danger">*</span>
  54. </label>
  55. <div class="mt-2">
  56. <textarea class="form-control" id="captionValue" rows="3" placeholder="請簡述說明" required></textarea>
  57. </div>
  58. </div>
  59. <!-- <div class="mb-4 align-items-center">
  60. <label for="companyValue">
  61. 公司名稱 (非必填)
  62. </label>
  63. <div class="mt-2">
  64. <input type="text" class="form-control" id="companyValue" placeholder="請留下公司名稱">
  65. </div>
  66. </div> -->
  67. <!-- <div class="mb-4 align-items-center">
  68. <label for="lineidValue">
  69. LINE ID (非必填)
  70. </label>
  71. <div class="mt-2">
  72. <input type="text" class="form-control" id="lineidValue" placeholder="請留下 LINE ID">
  73. </div>
  74. </div> -->
  75. <div class="mt-2">
  76. <div class="form-check">
  77. <input class="form-check-input" type="checkbox" id="agreeValue">
  78. <label class="form-check-label w-100" for="agreeValue">
  79. 是否同意集仕多搜集資料
  80. </label>
  81. </div>
  82. </div>
  83. <div style="height: 15px;">
  84. <span class="error-text text-danger">尚有欄位未填寫</span>
  85. </div>
  86. <div class="d-flex justify-content-center">
  87. <button type="submit" class="submit-btn" id="submitBtn">
  88. <span class="spinner-border spinner-border-sm me-2 loading-btn" role="status" aria-hidden="true"></span>
  89. 送出
  90. </button>
  91. </div>
  92. </form>
  93. </div>
  94. <script src="//code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
  95. crossorigin="anonymous"></script>
  96. <script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2"></script>
  97. <script type="module">
  98. import { createClient } from 'https://esm.sh/@supabase/supabase-js@2'
  99. const supabase = createClient('http://172.105.241.163:8000', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q');
  100. // 電話國碼
  101. // const countryCodes = [
  102. // '+1', // 美國
  103. // '+7', // 俄羅斯
  104. // '+33', // 法國
  105. // '+39', // 義大利
  106. // '+44', // 英國
  107. // '+46', // 瑞典
  108. // '+47', // 挪威
  109. // '+49', // 德國
  110. // '+52', // 墨西哥
  111. // '+60', // 馬來西亞
  112. // '+61', // 澳大利亞
  113. // '+62', // 印尼
  114. // '+64', // 紐西蘭
  115. // '+65', // 新加坡
  116. // '+66', // 泰國
  117. // '+81', // 日本
  118. // '+82', // 南韓
  119. // '+86', // 中國大陸
  120. // '+91', // 印度
  121. // '+353', // 愛爾蘭
  122. // '+852', // 香港
  123. // '+853', // 澳門
  124. // '+886', // 台灣
  125. // ];
  126. // console.log(countryCodes);
  127. // const countryCode = document.getElementById('countryCode');
  128. // countryCodes.forEach(code => {
  129. // const option = document.createElement('option');
  130. // option.value = code;
  131. // option.text = code;
  132. // countryCode.appendChild(option);
  133. // });
  134. // $('.error-text').hide();
  135. $('.loading-btn').hide();
  136. const scriptURL = 'https://script.google.com/macros/s/AKfycbzuwioqhnP2oL0AdHaYgEBvf0t0yWi2OTxZYlPYSoLuPyHhQFJKMm5mgOCoZEx-cIckbA/exec';
  137. async function send() {
  138. console.log('addEventListener');
  139. let name = document.querySelector('#nameValue').value; // 聯絡人
  140. let phone = document.querySelector('#phoneCode').value; // 聯絡電話
  141. // let company = document.querySelector('#companyValue').value; // 公司名稱
  142. let email = document.querySelector('#emailValue').value; // 電子信箱
  143. // let demand; // 需求目的
  144. let caption = document.querySelector('#captionValue').value; // 需求說明
  145. // let lineid = document.querySelector('#lineidValue').value; // LINE ID
  146. // let date = document.querySelector('#dateValue').value; // 預計活動需求日
  147. let agree; // 搜集資料
  148. let time; // 填單時間
  149. // 取得當下時間
  150. const now = new Date();
  151. const options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' };
  152. time = now.toLocaleString('zh-TW', options);
  153. console.log('time', time);
  154. if (document.querySelector('input[id="agreeValue"]:checked')) {
  155. agree = "同意";
  156. } else {
  157. agree = "不同意";
  158. }
  159. // if (document.querySelector('input[name="demandValue"]:checked')) {
  160. // demand = document.querySelector('input[name="demandValue"]:checked').value;
  161. // }
  162. // if (demand === "其他") {
  163. // demand = document.querySelector('#otherText').value;
  164. // }
  165. // let countryCode = document.querySelector('#countryCode').value; // 國碼
  166. // let phoneCode = document.querySelector('#phoneCode').value; // 電話號碼
  167. // phone = `${countryCode} ${phoneCode}`;
  168. $.ajax({
  169. url: scriptURL,
  170. method: "post",
  171. data: {
  172. "name": name,
  173. "phone": phone,
  174. "email": email,
  175. "caption": caption,
  176. "agree": agree,
  177. "time": time
  178. // "company": company,
  179. // "lineid": lineid,
  180. // "date": date,
  181. },
  182. success: function (response) {
  183. if (response == "成功") {
  184. $('.loading-btn').hide();
  185. alert("成功送出!");
  186. return;
  187. }
  188. },
  189. });
  190. }
  191. $('button').on('click', function (e) {
  192. e.preventDefault();
  193. // let countryCode = document.querySelector('#countryCode').value;
  194. // let demand = ""; // 需求目的
  195. // if (document.querySelector('input[name="demandValue"]:checked')) {
  196. // demand = document.querySelector('input[name="demandValue"]:checked').value;
  197. // }
  198. // if (demand === "其他") {
  199. // demand = document.querySelector('#otherText').value;
  200. // }
  201. // 手動觸發表單送出
  202. let form = $(this).closest('form');
  203. form[0].reportValidity(); // 顯示瀏覽器內建錯誤提示
  204. // if (countryCode === "選擇國碼") {
  205. // console.log('表單未通過驗證');
  206. // $('.error-text').show();
  207. // return;
  208. // }
  209. if (form[0].reportValidity()) {
  210. $('.loading-btn').show();
  211. $('.error-text').hide();
  212. send();
  213. }
  214. });
  215. </script>