{ item.fhint }
{ val }
this.item = opts.item this.val = this.item.val||'' edit(e){ this.val = e.target.value }
{ item.fhint }
{ val }
this.item = opts.item this.val = this.item.val||'' edit(e){ this.val = e.target.value }
{ item.fhint }
{ val }
this.item = opts.item this.val = this.item.val||'' edit(e){ this.val = e.target.value }
{ item.fhint}
{ val }
this.item = opts.item this.val = this.item.val||'' edit(e){ this.val = e.target.value }
{ item.fhint }
{ val }
this.item = opts.item this.val = this.item.val||'' edit(e){ this.val = e.target.value }
{ item.fhint }
{ val }
this.item = opts.item this.val = this.item.val||'' edit(e){ this.val = e.target.value } // 購読開始日を3日後にする if (this.item.ftagattr == 'delivery_date'){ var dt = new Date(); dt.setDate(dt.getDate() + 3); year = dt.getFullYear(); month = dt.getMonth()+1; month = ('00' + month).slice(-2); day = dt.getDate(); day = ('00' + day).slice(-2); this.val = year+'-'+ month+'-'+day; }
{ item.fhint }
{ val }
this.item = opts.item this.val = this.item.val||'' edit(e){ this.val = e.target.value }
住所を自動入力 { item.fhint }
{ val }
this.item = opts.item this.val = this.item.vals||'' edit(e){ this.val = e.target.value.replace(/[A-Za-z0-9]/g, function(s) { return String.fromCharCode(s.charCodeAt(0) - 65248); }); matched = this.val.match(/^(\d{3})-?(\d{4})$/) if (matched == null) return this.val=matched[1]+'-'+matched[2] } fill_address(e){ e.preventDefault() matched = this.val.match(/^(\d{3})-?(\d{4})$/) if (matched == null) return var url = 'https://madefor.github.io/postal-code-api/api/v1/'+matched[1]+'/'+matched[2]+'.json' $.getJSON(url).done(function (json) { var addrdata = json.data[0].ja if (typeof leadtag.refs.jyuusyo1 !== 'undefined' && typeof leadtag.refs.jyuusyo2 !== 'undefined'){ leadtag.refs.jyuusyo1.val=addrdata.prefecture + addrdata.address1 + addrdata.address2 + addrdata.address3 leadtag.refs.jyuusyo2.val=addrdata.address4 } else { leadtag.refs.address.val1=addrdata.prefecture leadtag.refs.address.val2=addrdata.address1 + addrdata.address2 leadtag.refs.address.val3=addrdata.address3 leadtag.refs.address.val4=addrdata.address4 } leadtag.update() }); // 番地が必須であることを示すように赤枠にする(focusedをclassに追加する)。 $('input').each(function(){ if ($(this).prop('placeholder') == '都道府県' || $(this).prop('placeholder') == '番地' || $(this).prop('placeholder') == '市区町村'){ $(this).addClass("focused"); } }); }
{ item.fhint }
{ val1+val2+val3+val4 }  
this.item = opts.item this.val = this.item.val||'' this.val1 = this.item.val1||'' this.val2 = this.item.val2||'' this.val3 = this.item.val3||'' this.val4 = this.item.val4||'' this.fdisp = opts.item.fdisp this.fname = opts.item.fname var self = this edit1(e){ this.val1=e.target.value } edit2(e){ this.val2=e.target.value } edit3(e){ this.val3=e.target.value } edit4(e){ this.val4=e.target.value } banchi_focused(e){ e.target.classList.add('focused'); // 元々はonblur="this.classList.add('focused')"とあったのをfunctionにした $('input').each(function(){ if ($(this).prop('placeholder') == '都道府県' || $(this).prop('placeholder') == '番地' || $(this).prop('placeholder') == '市区町村'){ $(this).addClass("focused"); } }); }
{ item.fhint }
{ h[val] }
this.item = opts.item this.val = this.item.val || this.item.fvalues this.h = {} var self = this this.kvs = this.item.foptions.split(/\n/).map(function(s){var sa=s.split(/:/,2);self.h[sa[0]]=sa[1];return {k:sa[0],v:sa[1]}}) edit(e){ this.val = e.target.value; }
{ h[val] }
this.item = opts.item this.val = this.item.val || this.item.fvalues this.h = {} var self = this this.kvs = this.item.foptions.split(/\n/).map(function(s){var sa=s.split(/:/,2);self.h[sa[0]]=sa[1];return {k:sa[0],v:sa[1]}}) edit(e){ this.val = e.target.value; }
{ item.fhint || 該当するものを選択してください }
{ show_values(val) }
this.item = opts.item this.val = this.val || this.item.fvalues.split(',').filter(function(s){return s !== '';}) this.h = {} var self = this this.kvs = this.item.foptions.split(/\n/).map(function(s){var sa=s.split(/:/,2);self.h[sa[0]]=sa[1];return {k:sa[0],v:sa[1]}}) show_values(vals){ return vals.map(function(v){ return self.h[v]; }).join(','); } edit(e){ if (e.target.checked){ if (self.val.indexOf(e.target.value)<0){ this.val.push(e.target.value); } }else{ if (self.val.indexOf(e.target.value)>=0){ this.val = this.val.filter(function(v){ return v != e.target.value; }); } } //console.log(self.val); }
var OptsMixin = { init: function() { //this.on('updated', function() { console.log('Updated!') }) }, getOpts: function() { return this.opts }, setOpts: function(opts, update) { this.opts = opts if (!update) this.update() return this } } this.root.innerHTML = opts.content

')}>

')}>

■画像や資料ファイルのアップロードはここでは行いません。ここでの投稿が完了した段階で、入力いただいた投稿者のメールアドレス宛にアップロードするためのURLを自動送信します。そのURLにWebブラウザでアクセスのうえ、画像等をアップロードして下さい。キャリアメール(@docomo.ne.jpなど)の場合、topics.or.jpドメインからのメール受信が許可されていないと、メールが届かない可能性があります。

登録確認完了

{ summary }

')}>

登録確認完了

')}>

登録確認完了

ご登録いただき、ありがとうございました。

画像や資料のアップロードが必要な投稿についてはアップロード用URLをメールで送信しましたので、24時間以内に、そちらからアップロードをお願いいたします。

個人情報保護指針の内容をご確認のうえ、「同意する」チェックボックスにチェックを入れてください。

■画像や資料ファイルのアップロードはここでは行いません。ここでの投稿が完了した段階で、入力いただいた投稿者のメールアドレス宛にアップロードするためのURLを自動送信します。そのURLにWebブラウザでアクセスのうえ、画像等をアップロードして下さい。キャリアメール(@docomo.ne.jpなど)の場合、topics.or.jpドメインからのメール受信が許可されていないと、メールが届かない可能性があります。
必須項目(赤枠部)が未入力か、書式が不正な項目が残っています。
var self = this leadtag = this self.mixin(OptsMixin) self.isvalid = false self.state = opts.state self.items = opts.items self.agreement = opts.agreement self.turnstile_valid = false submitForm = function() { // フォームにTurnstileトークンを追加 var form = $('form'); form.find('input[name="cf-turnstile-response"]').remove(); form.append(''); $.ajax({ url:"/list/personal/post_lead.json?code="+opts.code, method:'POST', data: form.serialize() }).done(function(xhr, textStatus, errorThrown){ if (xhr.status == 'OK'){ route('finish') self.state = "finish" }else if (xhr.status == 'ERROR'){ // トークンが無効になった場合(エラーコードに'timeout-duplicate'や'invalid-input-response'が含まれる場合) var errorMessage = xhr.message || ''; var isTokenExpired = errorMessage.indexOf('timeout-duplicate') !== -1 || errorMessage.indexOf('invalid-input-response') !== -1 || errorMessage.indexOf('Turnstile認証エラー') !== -1; if (isTokenExpired && typeof turnstile !== 'undefined') { // トークンをリセットして再取得を促す turnstileToken = null; $('#finish-error').show(); $('#finish-error').html('認証の有効期限が切れました。再度「この内容で送信」ボタンをクリックしてください。'); } else { $('#finish-error').show(); $('#finish-error').html(xhr.message); turnstileToken = null; } }else{ $('#finish-error').show(); $('#finish-error').html('送信に失敗しました。しばらく経ってから再度お試しください。'); turnstileToken = null; } }).fail(function(xhr, textStatus, errorThrown){ $('#finish-error').show(); $('#finish-error').html('送信に失敗しました。しばらく経ってから再度お試しください。'); turnstileToken = null; }) } self.onmount = function() { window.refs = this.refs if (opts.authorized && opts.isautofill){ opts.autofill(); } // routerに変更があったら実行される route('*',function(tag) { if (tag=='confirm' && refs.form.checkValidity()==false){ route('') }else{ if(tag=='') tag='init' self.state = tag self.isvalid = false riot.update() // 確認画面に遷移した時にTurnstileウィジェットをレンダリング(Non-interactiveモードでは自動的にトークンは取得されない) if (tag == 'confirm') { // トークンをリセット turnstileToken = null; requestAnimationFrame(function() { var attempts = 0; var maxAttempts = 50; // 5秒まで待機 var checkInterval = setInterval(function() { attempts++; if (typeof turnstile !== 'undefined') { clearInterval(checkInterval); var turnstileElement = document.getElementById('turnstile-widget'); if (turnstileElement) { try { // Non-interactiveモードでは、render()を呼び出しても自動的にトークンは取得されない // 送信ボタンクリック時にexecute()を呼び出してトークンを取得する turnstile.render(turnstileElement, { sitekey: '0x4AAAAAACFti5yAN3uNSIyv', callback: onTurnstileSuccess, theme: 'light' }); } catch (e) { console.error("Turnstile render error:", e); } } } else if (attempts >= maxAttempts) { clearInterval(checkInterval); console.error("Turnstile script failed to load"); } }, 100); }); } if (tag == 'init' && opts.isautofill) { autodisabled(); $('.btn_area').trigger('click'); } window.scrollTo(0,0) } }) route.start() } self.on('mount', this.onmount); checkAll(e){ self.isvalid = refs.form.checkValidity() } checkItems(e) { //temporary do nothing } postlead = function(e){ e.preventDefault(); // Turnstileトークンが取得できていない場合は、executeを実行 if (!turnstileToken) { if (typeof turnstile !== 'undefined') { var turnstileElement = document.getElementById('turnstile-widget'); if (turnstileElement) { turnstile.execute(turnstileElement); // execute後、コールバックでトークンが設定されるまで待機 var attempts = 0; var maxAttempts = 50; // 5秒まで待機 var checkTokenInterval = setInterval(function() { attempts++; if (turnstileToken) { clearInterval(checkTokenInterval); submitForm(); } else if (attempts >= maxAttempts) { clearInterval(checkTokenInterval); $('#finish-error').show(); $('#finish-error').html('認証が完了していません。しばらく待ってから再度お試しください。'); } }, 100); return false; } } $('#finish-error').show(); $('#finish-error').html('認証が完了していません。しばらく待ってから再度お試しください。'); return false; } submitForm(); return false; } //全inputタグにfocusedを付与する(最後の手段) this.on('mount', function() { $('input,select,textarea').each(function(){ $(this).addClass("focused"); }); })