GoogleAppsScriptとJavaScriptで以下の勤怠管理フォームを作ってみました。
出勤などのボタンをクリックすると確認のウインドウが表示されるようにしました。
ここからが問題です。
OK又はキャンセルを押しても一度でウィンドウが閉じません。
大体、平均で3回か4回程度どちらを押してもウインドウが再表示されます。
コードを以下に記載致します。
JavaScript
1<script type="text/javascript"> 2function paid_Tarou(){ 3var btn = document.getElementById('btn_Tarou'); 4btn.addEventListener('click', function() { 5var result = window.confirm('【山田太郎】の有給登録で間違いないですか。'); 6 7if( result ) { 8google.script.run 9.paid_Tarou(document.forms['form_Tarou'].elements['date'].value); 10} 11else { 12console.log('キャンセルがクリックされました'); 13}})} 14</script> 15 16<script type="text/javascript"> 17function clickBtn_Tarou_Attendance(){ 18 var btn = document.getElementById('btn_Tarou_Attendance'); 19 btn.addEventListener('click', function() { 20 var result = window.confirm('【山田太郎】が出勤で間違いないですか。'); 21 22 if( result ) { 23 google.script.run.clickBtn_Tarou_Attendance(); 24 } 25 else { 26 console.log('キャンセルがクリックされました'); 27 } 28}) 29} 30</script> 31 32<script type="text/javascript"> 33function clickBtn_Tarou_leaving(){ 34 var btn = document.getElementById('btn_Tarou_leaving'); 35 btn.addEventListener('click', function() { 36 var result = window.confirm('【山田太郎】が退勤で間違いないですか。'); 37 38 if( result ) { 39 google.script.run.clickBtn_Tarou_leaving(); 40 } 41 else { 42 console.log('キャンセルがクリックされました'); 43 } 44}) 45} 46</script> 47
考えられる原因として、google.script.runの処理に時間を要してウインドウが再表示されてしまっていると思います。
しかし、解決策が思いつかず質問させていただきました。
このような場合、ウインドウを一度で閉じる方法は無いのでしょうか。
ご回答お待ちしております。
HTML
1<p style="font-size:40px;font-weight:900;text-align:center">★山田太郎</p> 2 3<div class="button12"> 4 <a id="btn_Tarou_Attendance" onclick="clickBtn_Tarou_Attendance();">👉出勤</a> 5 <a id="btn_Tarou_leaving" onclick="clickBtn_Tarou_leaving();">👈退勤</a> 6</div> 7 8<p style="font-size:20px;font-weight:900;text-align:center">ー有給取得登録欄ー</p> 9 10<p></p> 11<div id="parent"> 12<form name="form_Tarou"> 13<p></p> 14<input name="date" type="date" /> 15<p></p> 16</form> 17</div> 18 19<div id="btn"> 20<input type="button" value="登録" onclick="paid_Tarou()" id="btn_Tarou"> 21</div>
回答1件
あなたの回答
tips
プレビュー