我有一个内置于.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>
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] 删除。
我来说两句