common.js
/// -------------------------------------------------- /// 数値チェック /// -------------------------------------------------- function isNumeric(s) { // 空文字でも数値でもない場合、false if (s != ‘‘ && s.match(/[^0-9]/g)) { return false; } return true; } /// -------------------------------------------------- /// 数値チェック /// -------------------------------------------------- function isTelNo(s) { // 空文字でも数値/-でもない場合、false if (s != ‘‘ && s.match(/[^0-9\-]/g)) { return false; } return true; } /// -------------------------------------------------- /// 時間チェック /// -------------------------------------------------- function isHour(s) { // 空文字、0~23は、true if (s == ‘‘ || s.match(/([0-1][0-9]|2[0-3]|^[0-9]$)/)) { return true; } return false; } /// -------------------------------------------------- /// 分チェック /// -------------------------------------------------- function isMinute(s) { // 空文字、00~59は、true if (s == ‘‘ || s.match(/([0-5][0-9]|^[0-9]$)/)) { return true; } return false; } // -------------------------------------------------- // 数値大小チェックチェック // -------------------------------------------------- function checkNumCompare(sLarge, sSmall) { return sLarge >= sSmall; } /// -------------------------------------------------- /// 3桁区切りのカンマ編集を行う。 /// -------------------------------------------------- function editComma(s) { returnValue = s; for (i4 = 0; i4 < returnValue.length / 3; i4++) { returnValue = returnValue.replace(/^([+-]?\d+)(\d\d\d)/, "$1,$2"); } return returnValue; } /// -------------------------------------------------- /// 小数点あり3桁区切りのカンマ編集を行う。 /// -------------------------------------------------- function editCommaPoint(x) { delComma(x); var s = "" + x; // 文字列型に変換する var p = s.indexOf("."); // 小数点の位置を0オリジンで求める if (p < 0) { // 小数点が見つからなかった時 p = s.length; // 仮想的な小数点の位置とする } var r = s.substring(p, s.length); // 小数点の桁と小数点より右側の文字列 for (var i = 0; i < p; i++) { // (10 ^ i) の位について var c = s.substring(p - 1 - i, p - 1 - i + 1); if (c < "0" || c > "9") { // 数字以外のもの(符合など)が見つかった r = s.substring(0, p - i) + r; // 残りを全部付加する break; } if (i > 0 && i % 3 == 0) { // 3 桁ごと、ただし初回は除く r = "," + r; // カンマを付加する } r = c + r; // 数字を一桁追加する。 } return r; } // ----------------------------------- // カンマ削除関数 // ----------------------------------- function delComma(str) { return str.split(",").join(""); } // ----------------------------------- // 小数点以下3桁四捨五入 // ----------------------------------- function addNumber(i) { var n = i * 100; n = Math.round(n); return n / 100; } // ----------------------------------- // 画面内の全ボタンを使用不可にする。 // ----------------------------------- function disableAllButton() { // ポップアップを先に表示する // ウィンドウオブジェクトを生成 popObj = window.createPopup(); // アドレスを短くするために、変数magicに「robot.document.body」を代入 popBodyObj = popObj.document.body; // 枠(ボーダー)の太さを2px、色をブルーに変更 popBodyObj.style.border = "solid 2px blue"; // gifのURL取得(仮想ディレクトリまでのURLを取得して絶対パスを設定) var gifUrl = location.href; var baseUrl = location.href.slice(0, location.href.indexOf(location.pathname)); // pathnameの先頭が「/dialog/」である場合または「/」が一つしかない(本番環境と判定) if (location.pathname.search(/\/(dialog|form)\//i) == 0 || location.pathname.indexOf(‘/‘, 1) < 0) { gifUrl = baseUrl; } else { gifUrl = baseUrl + location.pathname.slice(0, location.pathname.indexOf(‘/‘, 1)); } gifUrl += ‘/img/proessing.gif‘; // ポップアップ内のHTMLにイメージとメッセージを書き込む popBodyObj.innerHTML = "<center><br /><div style=\"position:relative;width:80px;height:80px;text-align:center;\"><span class=\"guard\"style=\"top:0px;left:0px;\"></span></div><br />ただ今処理中です。<br />お待ちください???</center><style type=\"text/css\">span.guard{position:absolute;display:block;width:80px;height:80px;background-image:url(" + gifUrl + ");}</style>"; // ポップアップを画面上に表示 windowWidth = 200; windowHeight = 180; x = (document.body.clientWidth / 2) - (windowWidth / 2); y = (document.body.clientHeight / 2) - (windowHeight); // 値は左から順に(x座標, y座標, width, height, document.body)となっています。 popObj.show(x, y, windowWidth, windowHeight, document.body); //ボタンの不活性化 setTimeout(function() { // /////////////// // //計測用:開始 // var st = new Date(); // /////////////// //button var elements = $(".button"); elements.each(function(i, elem) { $(this).attr("disabled", "disabled"); }); //text,change他 //検索系の画面しかないため、コメントアウト // elements = $(".textboxImeOn,.textboxImeOff,.textboxImeDisabled"); // elements.each(function(i, elem) { // $(this).unbind("onchange"); // }); //解放処理 elements = null; // /////////////// // //計測用:終了 // var ed = new Date(); // //計測用:表示 // var dif = ed.getTime() - st.getTime(); // alert(dif); // /////////////// }, 0); } // -------------------------------------------------- // 文字列バイト数取得 // -------------------------------------------------- function getByte(s) { var count = 0; for (i = 0; i < s.length; i++) { n = escape(s.charAt(i)); if (n.length < 4) count++; else count += 2; } return count; } // -------------------------------------------------- // 文字列バイト数チェック // -------------------------------------------------- function checkByte(s, maxByte) { var count = getByte(s); if (count > maxByte) { return false; } return true; } // -------------------------------------------------- // 日付フォーマット変換 // -------------------------------------------------- function changeDateFormat(s) { var dateStr = s; var mm; var dd; // 文字列に「/」がある場合 if (s.indexOf(‘/‘) >= 0) { a = s.split(‘/‘); // 文字列に「/」が2つある場合 if (a.length == 3) { if (a.length >= 2 && a[1].length == 1) { mm = ‘0‘ + a[1]; } else if (a.length >= 2 && a[1].length == 2) { mm = a[1]; } else { mm = ‘‘; } if (a.length == 3 && a[2].length == 1) { dd = ‘0‘ + a[2]; } else if (a.length == 3 && a[2].length == 2) { dd = a[2]; } else { dd = ‘‘; } dateStr = a[0] + ‘/‘ + mm + ‘/‘ + dd; } } else if (s.length == 8) { dateStr = s.substring(0, 4) + ‘/‘ + s.substring(4, 6) + ‘/‘ + s.substring(6, 8) } return dateStr; } // -------------------------------------------------- // 日付妥当性チェック // -------------------------------------------------- function isDate(s) { var datestr = changeDateFormat(s); if (s == "") return true; // 正規表現による書式チェック if (datestr.match(/^\d{4}\/\d{2}\/\d{2}$/)) { var vYear = datestr.substr(0, 4) - 0; var vMonth = datestr.substr(5, 2) - 1; // Javascriptは、0-11で表現 var vDay = datestr.substr(8, 2) - 0; // 月,日の妥当性チェック if (vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31) { var vDt = new Date(vYear, vMonth, vDay); if (isNaN(vDt)) { // OK return true; } else if (vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay) { // OK return true; } } } return false; } // -------------------------------------------------- // BackSpace キーを無効にする // -------------------------------------------------- window.document.onkeydown = onKeyDown; function onKeyDown(e) { if (navigator.appName == "Microsoft Internet Explorer") { //ALT+← ダメ if (event.keyCode == 0x25 && event.altKey == true) { //alert("ALT+←はダメ!"); return false; } //テキストボックス、パスワードボックスは許す for (i = 0; i < document.all.tags("INPUT").length; i++) { if (document.all.tags("INPUT")(i).name == window.event.srcElement.name && (document.all.tags("INPUT")(i).type == "text" || document.all.tags("INPUT")(i).type == "password") && document.all.tags("INPUT")(i).readOnly == false) { return true; } } //テキストエリアは許す for (i = 0; i < document.all.tags("TEXTAREA").length; i++) { if (document.all.tags("TEXTAREA")(i).name == window.event.srcElement.name && document.all.tags("TEXTAREA")(i).readOnly == false) { return true; } } //BackSpaceダメ if (event.keyCode == 8) { //alert("BackSpaseはダメ!"); return false; } } else if (navigator.appName == "Netscape") { if (e.which == 8) { return false; } } } // -------------------------------------------------- // F5 CTRL+Rを無効にする // -------------------------------------------------- document.onkeydown = forbidkeys; function forbidkeys() { switch (event.keyCode) { case 116: case 82: event.keyCode = 0; return false; break; } } // -------------------------------------------------- // 文字数をカウント // 半角は2文字までは1カウント // strSrc:カウント対象文字列 // -------------------------------------------------- function strLength(strSrc) { len = 0; strSrc = escape(strSrc); for (i = 0; i < strSrc.length; i++, len++) { if (strSrc.charAt(i) == "%") { if (strSrc.charAt(++i) == "u") { i += 3; len++; } i++; } } return len; } // -------------------------------------------------- // 残りの入力可能文字を表示 // name:id名、str:入力文字列、stopCount:最大入力可能文字数 // -------------------------------------------------- function CountDownLength(name, str, stopCount) { var strCount = Math.ceil(strLength(str).toString() / 2); var message; if (stopCount - strCount >= 0) { message = "(あと" + (stopCount - strCount) + "文字)"; document.getElementById(name).style.color = ‘black‘; } else { message = "(" + (strCount - stopCount) + "文字超え)"; document.getElementById(name).style.color = ‘red‘; } document.getElementById(name).innerHTML = message; } // -------------------------------------------------- // ラジオボタンの選択されているvalue値を取得する // -------------------------------------------------- function radioValue(element) { var len; len = element.length; for (i = 0; i < len; i++) { if (element[i].checked) { return element[i].value; } } return ""; } // ----------------------------------- // Windowのスクロール位置を画面に設定する。 // 第1引数:縦スクロール位置を格納しているhiddenID // 第2引数:横スクロール位置を格納しているhiddenID // ----------------------------------- function setWindowScroll(hiddenVerticalId, hiddenHorizonId) { var verScrVal = 0; var horScrVal = 0; var verObj = document.getElementById(hiddenVerticalId); if (verObj != null && verObj != undefined) { verScrVal = verObj.value } var horObj = document.getElementById(hiddenHorizonId); if (horObj != null && horObj != undefined) { horScrVal = horObj.value } window.scroll(horScrVal, verScrVal); } // ----------------------------------- // GridViewのスクロール位置を画面に設定する。 // 第1引数:対象GridViewのdivID // 第2引数:縦スクロール位置を格納しているhiddenID // 第3引数:横スクロール位置を格納しているhiddenID // ----------------------------------- function setGridViewScroll(divId, hiddenVerticalId, hiddenHorizonId) { var odj = document.getElementById(divId); if (odj != null && odj != undefined) { var verObj = document.getElementById(hiddenVerticalId); if (verObj != null && verObj != undefined) { document.getElementById(divId).scrollTop = document.getElementById(hiddenVerticalId).value; } var horObj = document.getElementById(hiddenHorizonId); if (horObj != null && horObj != undefined) { document.getElementById(divId).scrollLeft = document.getElementById(hiddenHorizonId).value; } } } // ----------------------------------- // Windowのスクロール位置をhiddenに設定する。 // 第1引数:縦スクロール位置を格納するhiddenID // 第2引数:横スクロール位置を格納するhiddenID // ----------------------------------- function getWindowScroll(hiddenVerticalId, hiddenHorizonId) { var verObj = document.getElementById(hiddenVerticalId); if (verObj != null && verObj != undefined) { document.getElementById(hiddenVerticalId).value = document.body.scrollTop; } var horObj = document.getElementById(hiddenHorizonId); if (horObj != null && horObj != undefined) { document.getElementById(hiddenHorizonId).value = document.body.scrollLeft; } } // ----------------------------------- // GridViewのスクロール位置をhiddenに設定する。 // 第1引数:対象GridViewのdivID // 第2引数:縦スクロール位置を格納するhiddenID // 第3引数:横スクロール位置を格納するhiddenID // ----------------------------------- function getGridViewScroll(divId, hiddenVerticalId, hiddenHorizonId) { if (!!document.getElementById(divId)) { var verObj = document.getElementById(hiddenVerticalId); if (verObj != null && verObj != undefined) { document.getElementById(hiddenVerticalId).value = document.getElementById(divId).scrollTop; } var horObj = document.getElementById(hiddenHorizonId); if (horObj != null && horObj != undefined) { document.getElementById(hiddenHorizonId).value = document.getElementById(divId).scrollLeft; } } } // ----------------------------------- // 日付より曜日を取得する。 // 第1引数:日付(文字列) // ----------------------------------- function getDayFromDate(strDate) { var myDate = new Date(strDate); DW = new Array(‘日‘, ‘月‘, ‘火‘, ‘水‘, ‘木‘, ‘金‘, ‘土‘) ; return DW[myDate.getDay()]; } // ----------------------------------- // TextAreaを縦方向に自動的に広げる // 第1引数:event // onkeyup="resize_textarea(event)"のように設定 // ----------------------------------- function resizeTextarea(ev) { if (ev) { //if (ev.keyCode != 13) return; var textarea = ev.target || ev.srcElement; var value = textarea.value; var lines = 1; for (var i = 0, l = value.length; i < l; i++) { if (value.charAt(i) == ‘\n‘) lines++; } textarea.setAttribute("rows", lines + 1); // window.status = lines; } } // ----------------------------------- // マッチしたtextareaタグのidのresizeTextAreaを実行する // 第1引数:id // ----------------------------------- function raiseResizetextArea(id) { var target = $(document.getElementById(id)).find("textarea"); target.each(function(ind, elem) { var ev = new Object(); ev.srcElement = elem; //eventの代わりにセットする resizeTextarea(ev); }); }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。