PageSourceSearch

https://buysell-kaitori.com/wp-content/themes/bsportal/assets/js/form/form_id_create.js

js buysell-kaitori.com collected 2026-10-02 14:39:46 UTC 7,071 bytes, 209 lines download raw bytes

1jQuery(function(){
2  // 問い合わせID作成
3  var now = jQuery.now().toString();
4  var cid = jQuery('input[name="cid"]').val();
5  if( typeof cid !== 'undefined' ) {
6  var cnt = 5 - cid.length;
7  }
8  var prefix = '';
9  for (var i = 0; i < cnt; i++) {
10    prefix = prefix + '0';
11  }
12  var inquiry_id = cid + 'a' + prefix + now;
13  jQuery('input[name="sid"]').val(inquiry_id);
14
15  // retURL(サンクスページURL)生成
16  var url = location.href;
17  var dir = url.substring(0, url.lastIndexOf('/')) + '/';
18  var retUrl = dir + 'thanks/?inquiry_id=' + inquiry_id;
19  jQuery('input[name="ret_url"]').val(retUrl);
20
21  // 半角英数字禁止
22  jQuery(".foo").change(function(){
23    var str = jQuery(this).val();
24    str = str.replace( /[A-Za-z0-9-!"#$%&'()=<>,.?_\[\]{}@^~\\]/g, function(s) {
25      return String.fromCharCode(s.charCodeAt(0) + 65248);
26    });
27    jQuery(this).val(str);
28  }).change();
29
30  // 個人情報の取扱いについてに同意チェック
31  var agree = false;
32  jQuery('.contact_form-agree__input--check').on('change', function() {
33    if (jQuery(this).prop('checked')) {
34      agree = true;
35    } else {
36      agree = false;
37    }
38  });
39
40  // 個人情報の取扱いについてに同意しない場合のアラート
41  jQuery('.contact_form__button').click(function(d) {
42    if (!agree) {
43      alert('個人情報の取扱いについて同意してください。');
44      return false;
45    } else {
46      return true;
47    }
48  });
49
50  const ua = navigator.userAgent;
51  if(ua.indexOf('MSIE') == -1) {
52    // HTML5 required属性有効化
53    webshim.activeLang('en');
54    webshims.polyfill('forms');
55    webshims.cfg.no$Switch = true;
56  }
57
58  /************************************
59  * フォームデータ送信
60  * 2020/09/08 Tech FIX
61  ************************************/
62
63  let requestFlg = false;
64
65  // トリガー
66  jQuery('#contact_form').submit(function(event) {
67    event.preventDefault();
68    // 何度も叩けないように制御 ※再試行を考慮
69    //// バリデーションエラーはsubmit前に走るため考慮せずOK
70    //// APIは正常系、異常系ともに実行後はフラグをfalseにもどす
71    if (requestFlg) return;
72    sendToGYRO();
73  })
74
75  // submit
76  const sendToGYRO = function() {
77    requestFlg = true;
78    // 現在のドメインを取得してURLを動的に生成
79    const protocol = window.location.protocol; // 'http:' or 'https:'
80    const host = window.location.host; // ドメイン名(例: 'buysell-kaitori.com')
81    const request = protocol + '//' + host + '/wp-content/themes/bsportal/module/form/request.php';
82    // const param = jQuery('#contact_form').serialize();
83
84    // -----------------------------------------------------------------------
85    // TechMK 編集分 2023/06/15
86    // -----------------------------------------------------------------------
87    let syouzai = '';
88
89    //チェックが入っている商材のみ商材名を入れる
90    // if (jQuery('#item01').prop('checked')) {
91    //     syouzai += '着物\n';
92    // }
93    // if (jQuery('#item02').prop('checked')) {
94    //     syouzai += '切手\n';
95    // }
96    // if (jQuery('#item03').prop('checked')) {
97    //     syouzai += '古銭\n';
98    // }
99    // if (jQuery('#item04').prop('checked')) {
100    //     syouzai += '毛皮\n';
101    // }
102    // if (jQuery('#item05').prop('checked')) {
103    //     syouzai += 'ブランド品\n';
104    // }
105    // if (jQuery('#item06').prop('checked')) {
106    //     syouzai += 'お酒\n';
107    // }
108    // if (jQuery('#item07').prop('checked')) {
109    //     syouzai += '金(貴金属)\n';
110    // }
111    // if (jQuery('#item08').prop('checked')) {
112    //     syouzai += '宝石\n';
113    // }
114    // if (jQuery('#item09').prop('checked')) {
115    //     syouzai += '時計\n';
116    // }
117    // if (jQuery('#item10').prop('checked')) {
118    //     syouzai += '骨董品\n';
119    // }
120    // if (jQuery('#item11').prop('checked')) {
121    //     syouzai += '金券\n';
122    // }
123    // if (jQuery('#item12').prop('checked')) {
124    //     syouzai += 'カメラ\n';
125    // }
126    // if (jQuery('#item13').prop('checked')) {
127    //     syouzai += '食器\n';
128    // }
129    // if (jQuery('#item14').prop('checked')) {
130    //     syouzai += '楽器\n';
131    // }
132    // if (jQuery('#item15').prop('checked')) {
133    //     syouzai += 'レコード\n';
134    // }
135    // if (jQuery('#item16').prop('checked')) {
136    //     syouzai += 'ゴルフクラブ\n';
137    // }
138    // if (jQuery('#item17').prop('checked')) {
139    //     syouzai += '家電\n';
140    // }
141    // if (jQuery('#item99').prop('checked')) {
142    //     syouzai +=  'その他:';
143    //     syouzai +=  jQuery('#itemetc').val();
144    // }
145    
146    // if (syouzai != '') {
147    //     syouzai += '\n';
148    // }
149    
150    //備考欄の値を保持
151    const item_remarks = jQuery('#remarks').val();
152
153    //フォームデータを取得
154    const formData = new FormData(document.getElementById('contact_form'));
155
156    // 商材の値を消去(GYRO側に受け皿が存在しない為)
157    // formData.delete('item01');
158    // formData.delete('item02');
159    // formData.delete('item03');
160    // formData.delete('item04');
161    // formData.delete('item05');
162    // formData.delete('item06');
163    // formData.delete('item07');
164    // formData.delete('item08');
165    // formData.delete('item09');
166    // formData.delete('item10');
167    // formData.delete('item11');
168    // formData.delete('item12');
169    // formData.delete('item13');
170    // formData.delete('item14');
171    // formData.delete('item15');
172    // formData.delete('item16');
173    // formData.delete('item17');
174    // formData.delete('item99');
175    // formData.delete('itemetc');
176    // formData.delete('remarks');
177    
178    // 備考欄に商材の値を挿入
179    formData.append('remarks', syouzai + item_remarks);
180
181    const param = new URLSearchParams(formData).toString();
182    // -----------------------------------------------------------------------
183
184    // エラーハンドリング(エラーが発生したらもう1回行うように促す) ※同期処理ではなくなったため
185    jQuery.post(request, param).done(function(response) {
186      // FIXME: ステータス修正後、200のみにする
187      if (response == 200 || response == 302) {
188        // GYROリクエスト:正常系
189        location.href = retUrl;
190      } else {
191        // GYROリクエスト:異常系
192        openErrorDialog(response);
193        requestFlg = false;
194      }
195    }).fail(function(error) {
196      // 異常系
197      openErrorDialog();
198      requestFlg = false;
199    });
200  }
201
202  // エラーコーション
203  const openErrorDialog = function(error) {
204    let errorMessage = "処理を正常に完了できませんでした。\n再度お試しください。";
205    if (error) errorMessage += "\n[Error: " + error + "]";
206    alert(errorMessage);
207  }
208
209});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.