olympiamanagement/app/assets/javascripts/olympiamanagement.js

186 lines
6.7 KiB
JavaScript
Raw Normal View History

2020-02-04 11:24:13 +00:00
function checkid(it){
var ALP_STR = "ABCDEFGHJKLMNPQRSTUVXYWZIO";
var NUM_STR = "0123456789";
function CheckPID(it) {
var sMsg = "";
var sPID = it.value;
if (sPID == '') {
sMsg = "請輸入身分證字號";
} else if (sPID.length != 10) {
sMsg = "身分證字號長度應為 10 ";
} else {
sPID = sPID.toUpperCase().trim();
if (!chkPID_CHAR(sPID)) return;
var iChkNum = getPID_SUM(sPID);
if (iChkNum % 10 != 0) {
var iLastNum = sPID.substr(9, 1) * 1;
for (i = 0; i < 10; i++) {
var xRightAlpNum = iChkNum - iLastNum + i;
if ((xRightAlpNum % 10) == 0) {
sMsg = "身分證字號最後一個數應為:" + i;
break;
}
}
}
}
if (sMsg.length != 0) {
//alert(sMsg);
alert((I18n.locale != "en") ? "身分證字號錯誤" : "ID Number error");
it.select();
return false;
}else{
return true;
}
}
// 身分證字號檢查器 - 檢查合法字元
function chkPID_CHAR(sPID) {
var sMsg = "";
//sPID = trim(sPID.toUpperCase());
var iPIDLen = String(sPID).length;
var sChk = ALP_STR + NUM_STR;
for (i = 0; i < iPIDLen; i++) {
if (sChk.indexOf(sPID.substr(i, 1)) < 0) {
sMsg = "這個身分證字號含有不正確的字元!";
break;
}
}
if (sMsg.length == 0) {
if (ALP_STR.indexOf(sPID.substr(0, 1)) < 0) {
sMsg = "身分證字號第 1 碼應為英文字母(A~Z)。";
} else if ((sPID.substr(1, 1) != "1") && (sPID.substr(1, 1) != "2")) {
sMsg = "身分證字號第 2 碼應為數字(1~2)。";
} else {
for (var i = 2; i < iPIDLen; i++) {
if (NUM_STR.indexOf(sPID.substr(i, 1)) < 0) {
sMsg = "第 " + (i + 1) + " 碼應為數字(0~9)。";
break;
}
}
}
}
if (sMsg.length != 0) {
//alert(sMsg);
alert((I18n.locale != "en") ? "身分證字號錯誤" : "ID Number error");
return false;
} else {
return true;
}
}
//身份證字號檢查器 - 累加檢查碼
function getPID_SUM(sPID) {
var iChkNum = 0;
// 第 1 碼
iChkNum = ALP_STR.indexOf(sPID.substr(0, 1)) + 10;
iChkNum = Math.floor(iChkNum / 10) + (iChkNum % 10 * 9);
// 第 2 - 9 碼
for (var i = 1; i < sPID.length - 1; i++) {
iChkNum += sPID.substr(i, 1) * (9 - i);
}
// 第 10 碼
iChkNum += sPID.substr(9, 1) * 1;
return iChkNum;
}
return CheckPID(it);
};
2020-01-31 13:46:35 +00:00
$(document).ready(function(){
$('.class_setting_block input[type="reset"]').off('click').on('click',function(){
$('.col_input').val('');
});
$('.class_setting_block input[type="submit"]').off('click').on('click',function(){
var class_number_range = [];
class_number_range.push(Number($('.class_setting_block .col_input[name="MinClass"]').val()));
class_number_range.push(Number($('.class_setting_block .col_input[name="MaxClass"]').val()));
var enrollment_available = $('.class_setting_block .col_input#Person').val();
class_number_range.sort();
var params_array = (window.location.search.substring(1)=="") ? [] : window.location.search.substring(1).split('&').map(function(el){return el.split('=')});
var params = {};
params_array.forEach(function(el){params[el[0]] = el[1]});
var params_to_send = {'type':'class_setting','class_number_range':class_number_range,'enrollment_available':enrollment_available};
params_to_send = Object.assign(params,params_to_send);
var post_data = $.post('/admin/olympiamanagements/update_school_data',params_to_send);
post_data.done(function(){
window.location.search="";
});
});
$('.fieldset_block input[type="submit"]').click(function(){
$el = $('.fieldset_block li.required');
for(var i = 0; i< $el.length ; i++){
2020-02-19 11:52:04 +00:00
if($el.eq(i).attr('for') == "StudentFile"){
if($el.eq(i).siblings('.col_r').find('img').length != 0){
continue;
}};
2020-01-31 13:46:35 +00:00
if($el.eq(i).siblings('.col_r').find('.required').val() == ""){
$el.eq(i).addClass('errFld');
if($el.eq(i).siblings('.col_r').find('.errMsg').length == 0)
$el.eq(i).siblings('.col_r').append('<div id="SchoolName-E" class="errMsg"> '+((I18n.locale == "en") ? 'Required field': '必填欄位')+'</div>');
}else{
$el.eq(i).removeClass('errFld');
$el.eq(i).siblings('.col_r').find('.errMsg').remove();
};
};
if($('.fieldset_block .required.errFld').length != 0)
return false;
else
2020-02-04 11:24:13 +00:00
if($('#StudentIDNO').length != 0)
try{return checkid(document.getElementById('StudentIDNO'));
}catch(e){console.log(e);return false;};
2020-01-31 13:46:35 +00:00
})
var $el = $('.fieldset_block select');
for(var i = 0 ; i < $el.length ; i++)
if($el.eq(i).attr('value') != "" && $el.eq(i).attr('value') != undefined)
$el.eq(i).find('option[value='+$el.eq(i).attr('value')+']').attr('selected','selected');
2020-02-04 11:24:13 +00:00
try{CKEDITOR.replaceAll()}catch(e){console.log(e)};
2020-02-20 09:49:29 +00:00
if($('#StudentIdentity').val() != '1' && $('#StudentIdentity').val() != '2')
2020-02-04 11:24:13 +00:00
$('#StudentFile').removeClass('required');
$('#StudentIdentity').click(function(){
2020-02-20 09:49:29 +00:00
if(this.value != '1' && this.value != '2'){
2020-02-04 11:24:13 +00:00
$('#StudentFile').removeClass('required');
}else{
$('#StudentFile').addClass('required');
};
2020-02-17 13:52:00 +00:00
$el = $('.fieldset_block li[for="StudentFile"]');
if($el.siblings('.col_r').find('.required').val() == ""){
$el.addClass('errFld');
if($el.siblings('.col_r').find('.errMsg').length == 0)
$el.siblings('.col_r').append('<div id="SchoolName-E" class="errMsg"> '+((I18n.locale == "en") ? 'Required field': '必填欄位')+'</div>');
}else{
$el.removeClass('errFld');
$el.siblings('.col_r').find('.errMsg').remove();
};
});
2020-02-20 09:49:29 +00:00
$('.fieldset_block input').on('input',function(){
if($(this).val() != ''){
$(this).parent().siblings('.col').removeClass('errFld');
$(this).siblings('.errMsg').remove();
};
});
$('.fieldset_block select').on('input',function(){
if($(this).val() != ''){
$(this).parent().siblings('.col').removeClass('errFld');
$(this).siblings('.errMsg').remove();
};
});
2020-02-17 13:52:00 +00:00
$('#StudentFile').on('input',function(){
if($(this).val() != ''){
$('[for="StudentFile"]').removeClass('errFld');
$('[for="StudentFile"]').siblings('.col_r').find('.errMsg').remove();
};
});
$('[data-dismiss="fileupload"]').click(function(){
if($('#StudentFile').hasClass('required')){
$el = $('.fieldset_block li[for="StudentFile"]');
$el.addClass('errFld');
if($el.siblings('.col_r').find('.errMsg').length == 0)
$el.siblings('.col_r').append('<div id="SchoolName-E" class="errMsg"> '+((I18n.locale == "en") ? 'Required field': '必填欄位')+'</div>');
};
2020-02-04 11:24:13 +00:00
});
2020-01-31 13:46:35 +00:00
});