加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 根据DropDownList选择验证TextBox

发布时间:2020-12-16 10:01:46 所属栏目:asp.Net 来源:网络整理
导读:我需要根据DropDownList控件中选择的值来验证TextBox.我有asp:TextBox和asp:DropDownList控件. 如果用户从第一个下拉列表中选择“是”选项,则必须在文本框中键入值.如何验证第二个框?感谢帮助. 解决方法 最简单的方法是将DropDownList的AutoPostBack属性
我需要根据DropDownList控件中选择的值来验证TextBox.我有asp:TextBox和asp:DropDownList控件.

如果用户从第一个下拉列表中选择“是”选项,则必须在文本框中键入值.如何验证第二个框?感谢帮助.

解决方法

最简单的方法是将DropDownList的AutoPostBack属性设置为true并处理它的SelectedIndexChanged事件.然后,您可以在那里启用/禁用验证器.

另一种方法是使用CustomValidator.此验证器不依赖于单个控件.您必须自己编写验证规则.例如ClientValidationFunction:

<script type="text/javascript" >
    function ClientValidate(source,arguments) {
        var txt = document.getElementById('TextBox1');
        var ddl = document.getElementById('DropDownList1');
        var decision = ddl.options[ddl.selectedIndex].text;
        if(decision=='Yes'){
            arguments.IsValid = txt.value.length > 0;
        }else{
            arguments.IsValid = true;
        }
    }
</script>

<asp:DropDownList id="DropDownList1" runat="server">
    <asp:ListItem Selected="True">Yes</asp:ListItem>
    <asp:ListItem Selected="False">No</asp:ListItem>
</asp:DropDownList>
<asp:TextBox id="TextBox1" runat="server" />
<asp:Button ID="BtnSubmit" runat="server" Text="Submit" />

<asp:CustomValidator id="CustomValidator1"
       ValidateEmptyText="true"
       ControlToValidate="TextBox1"
       ClientValidationFunction="ClientValidate"
       OnServerValidate="ServerValidation"
       Display="Static"
       ErrorMessage="Please enter text!"
       runat="server"/>

请记住始终实现OnServerValidate,因为您不应该仅依赖于javascript(可以禁用).这很简单:

void ServerValidation(object source,ServerValidateEventArgs args){
    args.IsValid = DropDownList1.SelectedIndex == 1 || TextBox1.Text.Length > 0;
}

VB.NET

Protected Sub ServerValidation(source As Object,args As System.Web.UI.WebControls.ServerValidateEventArgs)
    args.IsValid = DropDownList1.SelectedIndex = 1 OrElse TextBox1.Text.Length > 0
End Sub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读