优化的国籍JS

/** 国籍与证件类型操作类 */

var NationalityCertificateUtil = function(){};

/** 默认的证件类型 */
NationalityCertificateUtil.prototype.DEFAULTOptions = '<option value="">请选择</option>'; 
/** 中国国籍可选的证件类型 */
NationalityCertificateUtil.prototype.CHNOptions = '<option value="">请选择</option><option value="01">身份证</option><option value="03">军官证</option><option value="08">士兵证</option>';
/** 中国被保人可选的证件类型 */
NationalityCertificateUtil.prototype.CHNInsuredOptions = '<option value="">请选择</option><option value="01" selected="selected">身份证</option><option value="03">军官证</option><option value="06">出生证</option><option value="07">户口本</option><option value="08">士兵证</option>';
/** 中国被保人未选中的证件类型 */
NationalityCertificateUtil.prototype.CHNInsuredNoSelect = '<option value="">请选择</option><option value="01">身份证</option><option value="03">军官证</option><option value="06">出生证</option><option value="07">户口本</option><option value="08">士兵证</option>';
/** 中国国籍成年人可选的证件类型 */
NationalityCertificateUtil.prototype.CHNAultOptions = '<option value="">请选择</option><option value="01">身份证</option><option value="03">军官证</option><option value="08">士兵证</option>';
/** 中国国籍未成年人可选的证件类型 */
NationalityCertificateUtil.prototype.CHNNoAultOptions = '<option value="">请选择</option><option value="01">身份证</option><option value="06">出生证</option><option value="07">户口本</option>';
/** 香港澳门可选的证件类型 */
NationalityCertificateUtil.prototype.HKAMptions = '<option value="">请选择</option><option value="04">港澳回乡证</option>';
/** 台湾可选的证件类型 */
NationalityCertificateUtil.prototype.TWptions = '<option value="">请选择</option><option value="09">台胞证</option>';
/** 其他国籍可选的证件类型 */
NationalityCertificateUtil.prototype.OTHERptions = '<option value="">请选择</option><option value="02">护照</option>';


/**
 * 页面初始化时,根据国籍加载页面的证件类型,

*代码比原来的改得好,原代码区分投被保人,受益人,非常复杂。
 */
NationalityCertificateUtil.prototype.initIdtype = function(){
    var nativas = $(".nativacode");
    if(nativas){
        for(var i = 0; i < nativas.length; i++){
            
            var idtypeOptioin = nationalityCertificateUtil.DEFAULTOptions;
            var parentTab = $(nativas[i]).closest("tbody"); //可以有效避免标识太多的情况
            /** 证件类型节点 */
            var idtypeEle = $(parentTab).find(".idType");  // 找当前国籍的tbody的证件类型ele
            var initIdtypeValue = $(idtypeEle).val();   //证件类型val()
            /** 国籍 */
            var native = $(nativas[i]).val();  //国籍val(), 通过国籍来决定显示证件列表
            switch (native) {
                case 'CHN':
                    idtypeOptioin = nationalityCertificateUtil.CHNAultOptions;

      var idtypename = $(idtypeEle).attr("name");
                    if(idtypename.indexOf("insured") != -1){
                        idtypeOptioin = nationalityCertificateUtil.CHNInsuredOptions;
                    }
                    /** 出生日期 */
                    var birthday = $(parentTab).find(".birthday").val();
                    if(birthday != "" && birthday != "请选择"){
                        var age = birth.getAge(birthday);
                        if(age >= 18){
                            idtypeOptioin = nationalityCertificateUtil.CHNAultOptions;
                        }
                        else {
                            idtypeOptioin = nationalityCertificateUtil.CHNNoAultOptions;
                        }
                    }
                    break;
                case 'HKG':
                    idtypeOptioin = nationalityCertificateUtil.HKAMptions;
                    break;
                case 'MAC':
                    idtypeOptioin = nationalityCertificateUtil.HKAMptions;
                    break;
                case 'TWN':
                    idtypeOptioin = nationalityCertificateUtil.TWptions;
                    break;
                default:
                    if("" != native){
                        idtypeOptioin = nationalityCertificateUtil.OTHERptions;
                    }
            }
            $(idtypeEle).html(idtypeOptioin);
            
            if(initIdtypeValue != ""){
                $(idtypeEle).val(initIdtypeValue);
            }
        }
    }
};

/**
 * 页面初始化时,根据国籍加载页面的证件类型
 */
NationalityCertificateUtil.prototype.initIdtypeToisAdult = function(){
    var nativas = $(".nativacode");
    if(nativas){
        for(var i = 0; i < nativas.length; i++){
            
            var idtypeOptioin = nationalityCertificateUtil.DEFAULTOptions;
            var parentTab = $(nativas[i]).closest("tbody");
            /** 证件类型节点 */
            var idtypeEle = $(parentTab).find(".idType");
            var initIdtypeValue = $(idtypeEle).val();
            /** 国籍 */
            var native = $(nativas[i]).val();
            switch (native) {
                case 'CHN':
                    idtypeOptioin = nationalityCertificateUtil.CHNAultOptions;

      var idtypename = $(idtypeEle).attr("name");
                    if(idtypename.indexOf("insured") != -1 ){
                        var isadult = $("#isadult").val();   //判断是否成年
                        if(isadult == '0'){
                            idtypeOptioin = nationalityCertificateUtil.CHNNoAultOptions;
                        }else{
                            idtypeOptioin = nationalityCertificateUtil.CHNInsuredOptions;
                        }
                    }
                    
                    if(idtypename.indexOf("benef") !=-1){
                        idtypeOptioin = nationalityCertificateUtil.CHNInsuredNoSelect;
                    }
                    /** 出生日期 */
                    var birthday = $(parentTab).find(".birthday").val();
                    if(birthday != "" && birthday != "请选择"){
                        var age = birth.getAge(birthday);
                        if(age >= 18){
                            idtypeOptioin = nationalityCertificateUtil.CHNAultOptions;
                        }
                        else {
                            idtypeOptioin = nationalityCertificateUtil.CHNNoAultOptions;
                        }
                    }
                    break;
                case 'HKG':
                    idtypeOptioin = nationalityCertificateUtil.HKAMptions;
                    break;
                case 'MAC':
                    idtypeOptioin = nationalityCertificateUtil.HKAMptions;
                    break;
                case 'TWN':
                    idtypeOptioin = nationalityCertificateUtil.TWptions;
                    break;
                default:
                    if("" != native){
                        idtypeOptioin = nationalityCertificateUtil.OTHERptions;
                    }
            }
            $(idtypeEle).html(idtypeOptioin);
            
            if(initIdtypeValue != ""){
                $(idtypeEle).val(initIdtypeValue);
                if(initIdtypeValue=='01' ){
                    /**隐藏sex和birthday节点,红色的代码比原来好*/
                 $(idtypeEle).closest(".filltable").find('.sex').closest('tr').attr("style", "display:none");

         $(idtypeEle).closest(".filltable").find('.birthday').closest('tr').attr("style", "display:none");
                }
                if( initIdtypeValue=='07'){
                    /**让sex和birthday节点不能修改*/
                    $(idtypeEle).closest(".filltable").find('.sex').attr("disabled", "disabled");
                    $(idtypeEle).closest(".filltable").find('.birthday').attr("disabled", "disabled");

 $(idtypeEle).closest(".filltable").find('.birthday').attr("style", "background:#e8e8e8;color:#000");
   $(idtypeEle).closest(".filltable").find('.sex').attr("style", "background:#e8e8e8;color:#000");
                }
            }
        }
    }
};

/**
 * 设置证件类型
 * parameter 国籍的元素
 */
NationalityCertificateUtil.prototype.setIdtype = function(ele){
    var idtypeOptioin = nationalityCertificateUtil.DEFAULTOptions;
    var parentTab = $(ele).closest("tbody");
    /** 证件类型节点 */
    var idtypeEle = $(parentTab).find(".idType");
    /** 国籍 */
    var native = $(ele).val();
    switch (native) {
        case 'CHN':
            idtypeOptioin = nationalityCertificateUtil.CHNAultOptions;

            var idtypename = $(idtypeEle).attr("name");
            if(idtypename.indexOf("insured") != -1){
                idtypeOptioin = nationalityCertificateUtil.CHNInsuredOptions;
            }
            /** 出生日期 */
            var birthday = $(parentTab).find(".birthday").val();
            if(birthday != "" && birthday != "请选择"){
                var age = birth.getAge(birthday);
                if(age >= 18){
                    idtypeOptioin = nationalityCertificateUtil.CHNAultOptions;
                }
                else {
                    idtypeOptioin = nationalityCertificateUtil.CHNNoAultOptions;
                }
            }
            break;
        case 'HKG':
            idtypeOptioin = nationalityCertificateUtil.HKAMptions;
            break;
        case 'MAC':
            idtypeOptioin = nationalityCertificateUtil.HKAMptions;
            break;
        case 'TWN':
            idtypeOptioin = nationalityCertificateUtil.TWptions;
            break;
        default:
            if("" != native){
                idtypeOptioin = nationalityCertificateUtil.OTHERptions;
            }
    }
    $(idtypeEle).html(idtypeOptioin);
};

/**
 * 设置证件类型
 * parameter 国籍的元素
 */
NationalityCertificateUtil.prototype.setIdtypeToisAdult = function(ele){
    var idtypeOptioin = nationalityCertificateUtil.DEFAULTOptions;
    var parentTab = $(ele).closest("tbody");
    /** 证件类型节点 */
    var idtypeEle = $(parentTab).find(".idType");
    var initIdtypeValue = $(idtypeEle).val();
    /** 国籍 */
    var native = $(ele).val();
    switch (native) {
        case 'CHN':
            idtypeOptioin = nationalityCertificateUtil.CHNAultOptions;

            var idtypename = $(idtypeEle).attr("name");
            if(idtypename.indexOf("insured") != -1 ){
                var isadult = $("#isadult").val();
                if(isadult == '0'){
                    idtypeOptioin = nationalityCertificateUtil.CHNNoAultOptions;
                }else{
                    idtypeOptioin = nationalityCertificateUtil.CHNInsuredOptions;
                }
            }
            
            if(idtypename.indexOf("benef") !=-1){
                idtypeOptioin = nationalityCertificateUtil.CHNInsuredOptions;
            }
            /** 出生日期 */
            var birthday = $(parentTab).find(".birthday").val();
            if(birthday != "" && birthday != "请选择"){
                var age = birth.getAge(birthday);
                if(age >= 18){
                    idtypeOptioin = nationalityCertificateUtil.CHNAultOptions;
                }
                else {
                    idtypeOptioin = nationalityCertificateUtil.CHNNoAultOptions;
                }
            }
            break;
        case 'HKG':
            idtypeOptioin = nationalityCertificateUtil.HKAMptions;
            break;
        case 'MAC':
            idtypeOptioin = nationalityCertificateUtil.HKAMptions;
            break;
        case 'TWN':
            idtypeOptioin = nationalityCertificateUtil.TWptions;
            break;
        default:
            if("" != native){
                idtypeOptioin = nationalityCertificateUtil.OTHERptions;
            }
    }
    $(idtypeEle).html(idtypeOptioin);
    if(initIdtypeValue != ""){
        if($(idtypeEle).find("option[value='"+initIdtypeValue+"']").length>0){
            $(idtypeEle).val(initIdtypeValue);
        }
    }
};

NationalityCertificateUtil.prototype.cardValidate = function(idno,idtype,nation){
  一样 。。。。。。。
};

/**
 * 验证身份证是否正确
 * @param num 身份证
 * @returns {Boolean}
 */
NationalityCertificateUtil.prototype.idValidate = function(num) {
    一样。。。

};

var nationalityCertificateUtil = new NationalityCertificateUtil();

转载于:https://my.oschina.net/u/2277088/blog/843259

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值