DEV如何在前端动态设置某些控件为必填项

DEV如何在前端动态设置某些控件为必填项:包括通过某控件的值动态设置其他控件为必填项或非必填项,以及其他控件根据关键控件的值动态设置自身为必填项或非填项,这里面的关键部分:关键控件根据自身的值控制其他控件是否为必填项时,用到的方法是:SetIsValid(true或false),自身根据关键控件的值来设置自身是否为必填项,用到的方法:e.isValid=true或false,这个是比较关键的代码,只有使用e参数设置自身是否为必填项时,在行验证时才会出现警告图标,使用SetIsValid()方法,只在编辑时动态显示警告图标,但在行验证时会隐藏,不起作用!要特别注意!
前端代码:
关键控件根据自身值动态设置其他控件是否为必填项

 function bglx_SelectedIndexChanged(s, e) {
                //当为非所有人变更时,变更后所有人为空是非必填项,变更日期、变更说明都为必填项
                if (s.GetText().trim() == "非所有人变更")
                {
                    

                    bghsyr.SetText("");
                    bghsyr.SetIsValid(true);
                    if (bgrq.GetText().trim() == "") {
                        bgrq.errorText = "必填";
                        bgrq.SetIsValid(false);
                    }
                    else {
                        bgrq.SetIsValid(true);
                    }

                    if (bgsm.GetText().trim() == "") {
                        bgsm.errorText = "必填";
                        bgsm.SetIsValid(false);
                    }
                    else {
                        bgsm.SetIsValid(true);
                    }
                    //当状态为不可用时,错误图标是不显示的
                    bghsyr.SetEnabled(false);
                    bgrq.SetEnabled(true);
                    bgsm.SetEnabled(true);
                    
                }
                //当为无变更时,变更后所有人、变更日期、变更说明都为空
                if (s.GetText().trim() == "无变更") {
                   
                    bghsyr.SetText("");
                    bgrq.SetText("");
                    bgsm.SetText("");

                    
                    bghsyr.SetIsValid(true);
                    bgrq.SetIsValid(true);
                    bgsm.SetIsValid(true);
                    //当状态为不可用时,错误图标是不显示的
                    bghsyr.SetEnabled(false);
                    bgrq.SetEnabled(false);
                    bgsm.SetEnabled(false);
                    
                }
                //当为报废时,变更后所有人="报废",变更日期、变更说明为必填项
                if (s.GetText().trim() == "报废") {
                    //当改变了非所有人变更的值时,首先应先可用状态初始化,即都为能用,然后再根据情况设置可用状态,当状态为不可用时,错误图标是不显示的
                 
                    bghsyr.SetText("报废");

                    //必须放在enabled后面,因为enabeld会改变isValid的值为true
                    if (bghsyr.GetText().trim() != "报废") {
                        bghsyr.errorText = "必须为报废";
                        bghsyr.SetIsValid(false);
                    }
                    else {
                        bghsyr.SetIsValid(true);
                    }
                    if (bgrq.GetText().trim() == "") {
                        bgrq.errorText = "必填";
                        bgrq.SetIsValid(false);
                    }
                    else {
                        bgrq.SetIsValid(true);
                    }

                    if (bgsm.GetText().trim() == "") {
                        bgsm.errorText = "必填";
                        bgsm.SetIsValid(false);
                    }
                    else {
                        bgsm.SetIsValid(true);
                    }
                    //当状态为不可用时,错误图标是不显示的
                    bghsyr.SetEnabled(false);
                    bgrq.SetEnabled(true);
                    bgsm.SetEnabled(true);

                   
                   
                  
                }
                //当为转出时,变更后所有人="未知"或选择、变更日期、变更说明为必填项
                if (s.GetText() == "转出") {
                    if (bghsyr.GetText().trim() == "") {
                        bghsyr.errorText = "必填";
                        bghsyr.SetIsValid(false);
                    }
                    else {
                        bghsyr.SetIsValid(true);
                    }

                    if (bgrq.GetText().trim() == "") {
                        bgrq.errorText = "必填";
                        bgrq.SetIsValid(false);
                    }
                    else {
                        bgrq.SetIsValid(true);
                    }
                    if (bgsm.GetText().trim() == "") {
                        bgsm.errorText = "必填";
                        bgsm.SetIsValid(false);
                    }
                    else {
                        bgsm.SetIsValid(true);
                    }
                    //当状态为不可用时,错误图标是不显示的
                    bghsyr.SetEnabled(true);
                    bgrq.SetEnabled(true);
                    bgsm.SetEnabled(true);
                }
            }

以下为控件自身根据关键控件的值动态设置自身是否为必填项

//变更后所有人的变化事件
    function bghsyr_Validation(s, e) {
        if (bglx.GetText().trim()== "无变更") {
            e.isValid = true;
        }
        if (bglx.GetText().trim() == "转出") {
            if (bghsyr.GetText() == "") {
                e.errorText = "必填";
                e.isValid = false;
            }
            else {
                e.isValid = true;
            }
        }
        if (bglx.GetText().trim() == "报废") {
            if (bghsyr.GetText() != "报废") {
                e.errorText = "必须为报废";
                e.isValid = false;
            }
            else {
                e.isValid = true;
            }
        }
        if (bglx.GetText().trim() == "非所有人变更") {
            if (bghsyr.GetText() != "") {
                e.errorText = "必须为空";
                e.isValid = false;
            }
            else {
                e.isValid = true;
            }
        }

    }

    //变更日期的变化事件
    function bgrq_Validation(s, e) {
        if (bglx.GetText().trim() == "无变更") {
            e.isValid = true;
        }
        if (bglx.GetText().trim() == "转出") {
            if (bgrq.GetText() == "") {
                e.errorText = "必填";
                e.isValid = false;
            }
            else {
                e.isValid = true;
            }
        }
        if (bglx.GetText().trim() == "报废") {
            if (bgrq.GetText() == "") {
                e.errorText = "必填";
                e.isValid = false;
            }
            else {
                e.isValid = true;
            }
        }
        if (bglx.GetText().trim() == "非所有人变更") {
            if (bgrq.GetText() == "") {
                e.errorText = "必填";
                e.isValid = false;
            }
            else {
                e.isValid = true;
            }
        }

    }
    //变更日期的变化事件
    function bgsm_Validation(s, e) {
        if (bglx.GetText().trim() == "无变更") {
            e.isValid = true;
        }
        if (bglx.GetText().trim() == "转出") {
            if (bgsm.GetText() == "") {
                e.errorText = "必填";
                e.isValid = false;
            }
            else {
                e.isValid = true;
            }
        }
        if (bglx.GetText().trim() == "报废") {
            if (bgsm.GetText() == "") {
                e.errorText = "必填";
                e.isValid = false;
            }
            else {
                e.isValid = true;
            }
        }
        if (bglx.GetText().trim() == "非所有人变更") {
            if (bgsm.GetText() == "") {
                e.errorText = "必填";
                e.isValid = false;
            }
            else {
                e.isValid = true;
            }
        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值