/** * 共通js関数 */ // システム全体の初期化処理 $(document).ready(function(){ // inputのtype='text'でEnterを効かなくする $("input[type='text']").keydown(function(e) { if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) { return false; } else { return true; } }); // Input[readonly] でBackSpaceを効かなくする(ページバックを防ぐ) $('input').filter("[readonly]").keydown(function(e) { if ((e.which && e.which === 8) || (e.keyCode && e.keyCode === 8)) { return false; } else { return true; } }); // 後から設定された[readonly] でBackSpaceを効かなくする(ページバックを防ぐ) $('input, textarea').on("keydown", function(e) { var readonly = $(this).attr("readonly"); if (readonly != "readonly") { return true; } if ((e.which && e.which === 8) || (e.keyCode && e.keyCode === 8)) { return false; } else { return true; } }); }); /** * blickUI */ var blockUI = {}; blockUI.intervalId = null; /** * UIブロック:通常 */ blockUI.block = function(msg){ if (msg === undefined){ msg = 'お待ちください...'; } // 画面ロック $.blockUI({message:'    ' + msg}); } /** * ダウンロード用画面ブロック * ※サーバ側で、ダウンロード完了時にcookie COOKIE_DOWNLOADED を設定すること */ blockUI.blockDownloaded = function(interval){ if (interval === undefined || !$.isNumeric(interval) || interval < 1000){ interval = 1000; } // 画面ロック blockUI.block(); // ダウンロード完了フラグ削除 $.removeCookie(COOKIE_DOWNLOADED, {path:'/'}); // ダウンロード開始時画面ロック解除タイマー blockUI.intervalId = setInterval('blockUI.unblockDownloaded()', interval); } /** * ダウンロード完了時に画面ブロックを解除 */ blockUI.unblockDownloaded = function(){ // ダウンロード完了フラグ有り? if ($.cookie(COOKIE_DOWNLOADED)){ // interval停止 clearInterval(blockUI.intervalId); blockUI.intervalId = null; // ダウンロード完了フラグ削除 $.removeCookie(COOKIE_DOWNLOADED, {path:'/'}); // 画面アンロック $.unblockUI(); } } var commonLogic = {}; /** * ログアウト */ commonLogic.logout = function(){ // 画面ロック blockUI.block(); // ログアウト location.href = rootAddress + "/member/logout/"; } /** * 管理者ログアウト */ commonLogic.adminLogout = function(){ // 画面ロック blockUI.block(); // ログアウト location.href = rootAddress + "/PSNakaiCrystalPrintAdmin/logout/"; } /** * ファイル要素クリア(ファイル要素を囲んでいるspanのIDを指定すること) */ commonLogic.fileCrear = function(id){ //var fileDiv = document.getElementById(id); //$('#' + id); //var temp = fileDiv.innerHTML; //fileDiv.innerHTML = temp; $('#' + id).children('input [type=file]').replaceWith('input [type=file]').clone(true); } /** * 指定TableDivID下のtbody要素の高さを設定する */ commonLogic.tableHeightResize = function(id, baseHeight){ var targetDiv = $('#' + id); var targetTable = $('#' + id + ' tbody'); var windowHeight = $(window).height(); targetTable.height(windowHeight - baseHeight); // 行が存在する場合のみdisplay-noneを解除する var tr = targetTable.children('tr'); if (tr.length){ targetDiv.removeClass('display-none'); } } /** * 指定TableDivID下のtbody指定行(rowNum)にスクロールする * ※rowNum指定無し時は最下行 */ commonLogic.tableScroll = function(id, rowNum){ var targetDiv = $('#' + id); var targetTable = $('#' + id + ' tbody'); // 指定行無し時は最下行 if (rowNum === undefined){ rowNum = targetTable.children().length; } // 指定行が1より大きい場合のみスクロールする if (rowNum > 1){ var baseRowPosition = targetTable.find('tr:eq(0)').position(); var targetRowPosition = targetTable.find('tr:eq(' + (rowNum - 1) + ')').position(); //targetTable.animate({scrollTop : targetRowPosition.top - baseRowPosition.top}); targetTable.scrollTop(targetRowPosition.top - baseRowPosition.top); } } /** * datepucker設定 */ commonLogic.datepicker = function(){ var addClearButton = function(input) { setTimeout(function() { var buttonPanel = $(input).datepicker('widget').find('.ui-datepicker-buttonpane'); var btn = $(''); btn.unbind('click').bind('click', function() { $.datepicker._clearDate(input); }); btn.appendTo(buttonPanel); }, 1); }; $(".datepicker").datepicker( { showOn : "focus", dateFormat : 'yy-mm-dd', changeYear : true, changeMonth : true, yearRange : 'c-5:c+5', showButtonPanel : true, beforeShow : function(input, inst){ $('#ui-datepicker-div').css( 'font-size', '12px' ); addClearButton(input); }, onChangeMonthYear : function(){ addClearButton(this); } }); } /** * 数値から、3桁毎にカンマ区切りの文字列を取得 */ commonLogic.addFigure = function(num) { var str = new String(num).replace(/,/g, ""); while(str != (str = str.replace(/^(-?\d+)(\d{3})/, "$1,$2"))); return str; } /** * Shift-JISでsubmit */ commonLogic.shiftJisSubmit = function(objForm){ var orgChar = document.charset; document.charset = "shift_jis"; objForm.submit(); document.charset = orgChar; }