251 lines
7.6 KiB
JavaScript
251 lines
7.6 KiB
JavaScript
// 検索フォーム
|
||
|
||
// 戻るボタンの関数
|
||
// 機能概要:メニュー画面に遷移する
|
||
function backToMenu(){
|
||
location.href = "/menu/";
|
||
}
|
||
|
||
// クリアボタンの関数
|
||
// 利用条件1:form名がsearch
|
||
// 利用条件2:form入力値名がctrl_で始まる
|
||
function clr() {
|
||
const formElement = document.search
|
||
const formInputElements = Array.from(formElement.elements)
|
||
for (const formInput of formInputElements) {
|
||
if (formInput.name.startsWith('ctrl_')) {
|
||
formInput.value = "";
|
||
}
|
||
if(formInput.name == 'ikoFlg'){
|
||
formInput.checked = false;
|
||
}
|
||
}
|
||
|
||
// 検索ボタンを再度非活性にする
|
||
formBtDisabled();
|
||
}
|
||
|
||
/**
|
||
* ボタンの活性非活性関数
|
||
* @param {*} buttonId ボタンのID デフォルトは`search_bt`
|
||
* @param {*} formId フォームのname デフォルトは`search`
|
||
* @param {*} all 全インプットが入力されている場合に活性化するかどうか
|
||
*/
|
||
function formBtDisabled(buttonId='search_bt', formId='search', all=false) {
|
||
const formElement = document[formId]
|
||
const formInputElements = Array.from(formElement.elements)
|
||
// 検査対象を
|
||
const checkTargetValueLength = formInputElements
|
||
.filter((elem) => elem.name.startsWith('ctrl_'))
|
||
.map((elem) => elem.value.length)
|
||
|
||
// 活性、非活性の判断
|
||
let validFlg = false;
|
||
if (all) {
|
||
validFlg = checkTargetValueLength.every((num) => num !== 0)
|
||
} else {
|
||
validFlg = checkTargetValueLength.some((num) => num !== 0)
|
||
}
|
||
|
||
if (validFlg == true) {
|
||
$(`#${buttonId}`).removeAttr('disabled');
|
||
// クリアボタンはあれば活性化する
|
||
if ($('#clear')) {
|
||
$('#clear').removeAttr('disabled');
|
||
}
|
||
}
|
||
else {
|
||
$(`#${buttonId}`).attr('disabled', 'disabled');
|
||
// クリアボタンはあれば非活性化する
|
||
if ($('#clear')) {
|
||
$('#clear').attr('disabled', 'disabled');
|
||
}
|
||
}
|
||
}
|
||
|
||
// ドロップダウンリスト再選択の関数
|
||
// 引数:ドロップダウンリストのID
|
||
// 引数:選択したいリスト選択表示文字列
|
||
function selectDropDowList(id, selectedName){
|
||
// 以前の検索条件再読み込み
|
||
var select = document.getElementById(id);
|
||
select = select.children[0];
|
||
var options = select.options;
|
||
if (options != null)
|
||
{
|
||
for(var i = 0; i < options.length; i++){
|
||
if(options[i].text === selectedName){
|
||
options[i].selected = true;
|
||
}
|
||
};
|
||
}
|
||
}
|
||
|
||
/**
|
||
* DatePickerを設定
|
||
*/
|
||
function enableDatePicker() {
|
||
// カレンダーの表示を日曜日始まりに変更
|
||
flatpickr.l10ns.ja.firstDayOfWeek = 0;
|
||
|
||
$(".date_picker").each(function(i, elem) {
|
||
const date_picker_name = elem.name;
|
||
|
||
flatpickr(elem, {
|
||
locale: 'ja', // 日本語カレンダー
|
||
allowInput: true, // 入力可能にする
|
||
dateFormat: "YYYY/MM/DD", // 日付のフォーマット
|
||
onChange(_dates, currentDateString, _picker, _data) {
|
||
},
|
||
parseDate: function(strFormat, format) {
|
||
|
||
// yyyyMMddの場合→yyyy/MM/dd
|
||
const datePatternMatches = strFormat.match(/^(\d{4})(\d{2})(\d{2})$/);
|
||
if (datePatternMatches){
|
||
strFormat = `${datePatternMatches[1]}/${datePatternMatches[2]}/${datePatternMatches[3]}`;
|
||
}
|
||
|
||
// yyyy/00/00~yyyy/00/00の場合→yyyy/01/01~yyyy/12/31
|
||
// yyyy/MM/00~yyyy/MM/01の場合→yyyy/MM/01~yyyy/MM/末日
|
||
// 開始日の場合
|
||
if (date_picker_name.includes('from')){
|
||
strFormat = strFormat.replace("/00/00", "/01/01");
|
||
strFormat = strFormat.replace("/00", "/01");
|
||
}
|
||
// 終了日の場合
|
||
else if (date_picker_name.includes('to')){
|
||
strFormat = strFormat.replace("/00/00", "/12/31");
|
||
const date = new Date(strFormat.slice(0, 4), strFormat.slice(5, 7), 0).getDate();
|
||
strFormat = strFormat.replace("/00", "/"+date.toString());
|
||
}
|
||
return new Date(strFormat);
|
||
},
|
||
formatDate: (date, format) => {
|
||
// 日付の整合性チェック、不正の場合は空表示
|
||
if(isNaN(date.getDate())){
|
||
return;
|
||
}
|
||
|
||
// フォーマットを設定
|
||
const formatted = flatpickr.formatDate(date,'Y/m/d');
|
||
return formatted;
|
||
|
||
}
|
||
})
|
||
});
|
||
}
|
||
|
||
// 前のスペースを許さない入力チェック
|
||
function checkSpaceForm($this)
|
||
{
|
||
var str=$this.value;
|
||
|
||
while(str.match(/(^\s+)/g))
|
||
{
|
||
str=str.replace(/(^\s+)/g, "");
|
||
}
|
||
|
||
$this.value=str;
|
||
}
|
||
|
||
// あいまい検索用に半角の英数字と%以外を許さない入力チェック
|
||
function checkAimaiSearhForm($this)
|
||
{
|
||
var str=$this.value;
|
||
while(str.match(/[^A-Z^a-z^0-9\%]/))
|
||
{
|
||
str=str.replace(/[^A-Z^a-z^0-9\%]/,"");
|
||
}
|
||
$this.value=str;
|
||
}
|
||
|
||
// 大文字小文字-以外を許さない入力チェック
|
||
function checkPassForm($this)
|
||
{
|
||
var str=$this.value;
|
||
while(str.match(/[^ -\~]/))
|
||
{
|
||
str=str.replace(/[^ -\~]/,"");
|
||
}
|
||
$this.value=str;
|
||
}
|
||
|
||
// チェックボックス全選択関数
|
||
// 条件:チェックボックスのクラス名に"selected"というのがついていること
|
||
// 条件:ボタンにクラス名 send がついていること
|
||
function allOn(){
|
||
$(".selected").prop("checked", true);
|
||
$(".send").prop('disabled',false);
|
||
}
|
||
|
||
// チェックボックス全解除関数
|
||
// 条件:チェックボックスのクラス名に"selectedページ数"というのがついていること
|
||
// 条件:ボタンにクラス名 send がついていること
|
||
function allOff(){
|
||
$(".selected").prop("checked", false);
|
||
$(".send").prop('disabled',true);
|
||
}
|
||
|
||
// 検索結果のところのボタンをチェックが1個でも付いたら押せるようにして、チェックがなければ押せないようにする関数
|
||
// 条件:チェックボックスのクラス名に"selected"というのがついていること
|
||
// 条件:ボタンにクラス名 send がついていること
|
||
function resultBtDisablead(){
|
||
var cnt1 = $('.checkNum input:checkbox:checked').length;
|
||
console.log(cnt1);
|
||
if(cnt1 == 0) {
|
||
$(".send").prop('disabled',true);
|
||
}
|
||
else {
|
||
$(".send").prop('disabled',false);
|
||
}
|
||
}
|
||
|
||
// 数字-以外を許さない入力チェック
|
||
function checkNumberForm($this)
|
||
{
|
||
var str=$this.value;
|
||
while(str.match(/[^\d\-]/))
|
||
{
|
||
str=str.replace(/[^\d\-]/,"");
|
||
}
|
||
$this.value=str;
|
||
}
|
||
|
||
// 数字以外を許さない入力チェック
|
||
function checkNumberOnlyForm($this)
|
||
{
|
||
var str=$this.value;
|
||
while(str.match(/[^\d]/))
|
||
{
|
||
str=str.replace(/[^\d]/,"");
|
||
}
|
||
$this.value=str;
|
||
}
|
||
|
||
// メニューへボタンの関数
|
||
// 機能概要:マスターメンテメニュー画面に遷移する
|
||
function backToMainteMenu(){
|
||
sessionStorage.clear();
|
||
location.href = "/masterMainte/masterMainteMenu";
|
||
}
|
||
|
||
// 確認ダイアログ
|
||
function confirmDialog(strMesssage) {
|
||
var result = confirm(strMesssage);
|
||
return result;
|
||
}
|
||
|
||
function formInsertBtDisabled(){
|
||
var validFlg = false;
|
||
if(document.getElementById("csvFile").value === ""){
|
||
validFlg = true;
|
||
}
|
||
|
||
if (validFlg == true) {
|
||
document.getElementById("confirm").disabled = true;
|
||
}
|
||
else {
|
||
document.getElementById("confirm").disabled = false;
|
||
}
|
||
}
|