VB.net中的自定义验证要求用户将文本框加到100

pmlevere

我有一个内置于.Net 4.0的VB Web应用程序,并且正在尝试添加一些自定义验证。

我有6个asp文本框,我希望用户将其总计为100。所有6个字段都具有必填字段和必需的表达式验证器,这些验证器要求用户输入0.0到100.0之间的数字,但是我需要其他验证才能总计为100.0。同样,6个仅包含数字的文本框仅允许整数或单个十进制数字。

我是一个相对较新的程序员,执行此操作的最佳方法是:

文本框1 +文本框2 +文本框3 +文本框4 +文本框5 +文本框6 = 100.0(如果不是,则提示用户输入的值不等于100.0,并且在固定值之前不允许单击按钮。

谢谢你的帮助!

蒂姆·施密特

使用,CustomValidator这是唯一可以省略的验证器ControlToValidate

<asp:CustomValidator runat="server" ID="CustomValidator1"
   Text="The sum must be 100" 
   ClientValidationFunction="clientValidate" 
   EnableClientScript="True"
   Display="Static">
</asp:CustomValidator>

ServerValidate

Protected Sub ServerValidation(source As Object, args As ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
    Dim val1 As Decimal
    Dim val2 As Decimal
    Dim val3 As Decimal
    Dim val4 As Decimal
    Dim val5 As Decimal
    If Decimal.TryParse(TextBox1.Text, val1) AndAlso _
       Decimal.TryParse(TextBox2.Text, val2) AndAlso _
       Decimal.TryParse(TextBox3.Text, val3) AndAlso _
       Decimal.TryParse(TextBox4.Text, val4) AndAlso _
       Decimal.TryParse(TextBox5.Text, val5) Then
        args.IsValid = val1 + val2 + val3 + val4 + val5 = 100
    Else
        args.IsValid = False
    End If
End Sub

您还可以提供客户端验证功能。因此,您需要找到每个javascript文本框的引用,然后在客户端计算总价值。

例如:

<script type="text/javascript" >
    function clientValidate(source, arguments) {
        var txt1 = document.getElementById('<%= TextBox1.ClientID %>');
        var txt2 = document.getElementById('<%= TextBox2.ClientID %>');
        var txt3 = document.getElementById('<%= TextBox3.ClientID %>');
        var txt4 = document.getElementById('<%= TextBox4.ClientID %>');
        var txt5 = document.getElementById('<%= TextBox5.ClientID %>');
        if(txt1 != null && txt2 != null && txt3 != null && txt4 != null && txt5 != null && txt1.value != "" && !isNaN(txt1.value) && txt2.value != "" && !isNaN(txt2.value) && txt3.value != "" && !isNaN(txt3.value) && txt4.value != "" && !isNaN(txt4.value) && txt5.value != "" && !isNaN(txt5.value))
        {
            var num1 = parseFloat(txt1.value);
            var num2 = parseFloat(txt2.value);
            var num3 = parseFloat(txt3.value);
            var num4 = parseFloat(txt4.value);
            var num5 = parseFloat(txt5.value);
            arguments.IsValid = num1 + num2 +num3 + num4 + num5 == 100;
        }
        else
            arguments.IsValid = false;
    }
</script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何限制用户只能在vb.net的文本框中输入整数

来自分类Dev

在vb.net中循环浏览文本框

来自分类Dev

vb.net中的文本框光标

来自分类Dev

在VB.NET中动态添加文本框

来自分类Dev

在文本框VB.net中显示逗号

来自分类Dev

将输入从文本框转换为vb中的Byte()

来自分类Dev

VB.net将URL结果中的JSON放置在文本框中

来自分类Dev

vb.net通过拖放和双击将值从列表框添加到文本框

来自分类Dev

自定义用户控件将空引用VB6抛出到VB.NET迁移

来自分类Dev

自定义用户控件将空引用VB6抛出到VB.NET迁移

来自分类Dev

VB.NET中带有自定义项目的列表框

来自分类Dev

自定义treeview VB.net

来自分类Dev

VB.net如何将一些文本框文本保存到文本文件中

来自分类Dev

VB.Net自定义控件中的右键菜单

来自分类Dev

VB中的自定义事件

来自分类Dev

ASP.Net(VB)文本框-设置默认文本

来自分类Dev

从文本框中输入文本到组合框vb.net

来自分类Dev

如何验证至少填写了一个文本框 (VB.Net)

来自分类Dev

Vb.net从在其他文本框中逐行插入的文本框中获取文本

来自分类Dev

Vb.net 将文本框与时间和组合框值相乘

来自分类Dev

屏蔽的文本框导致VB.NET错误

来自分类Dev

vb.net在表单之间传递文本框。

来自分类Dev

显示从SQL到vb.net文本框的数据

来自分类Dev

文本框行进入listview子项vb.net

来自分类Dev

Vb.net附加文本框的行

来自分类Dev

打开文件富文本框(VB.NET)

来自分类Dev

无法更新文本框 vb.net -crossthreading

来自分类Dev

VB.Net 文本框公式阅读器

来自分类Dev

如何将文本框的值传递到asp.net(vb)中的另一个页面