我有兩個輸入文本框是十進制的。如何在這種情況下使用驗證程序是ASP.NET?
的兩個輸入的總和不能超過100。當輸入1爲40,輸入2不能超過60
我需要做客戶端的一切,需要讓客戶輸入任何值。如果輸入的值超過極限,我需要顯示驗證錯誤消息:
Page.isValid = false
現在我必須爲每個輸入框兩個獨立的驗證,但我不知道如何改變兩個驗證的valueToCompare在客戶端。
請指教,
感謝
我有兩個輸入文本框是十進制的。如何在這種情況下使用驗證程序是ASP.NET?
的兩個輸入的總和不能超過100。當輸入1爲40,輸入2不能超過60
我需要做客戶端的一切,需要讓客戶輸入任何值。如果輸入的值超過極限,我需要顯示驗證錯誤消息:
Page.isValid = false
現在我必須爲每個輸入框兩個獨立的驗證,但我不知道如何改變兩個驗證的valueToCompare在客戶端。
請指教,
感謝
你應該看看使用CustomValidator控件的總和。 Here's一篇文章,引導您使用它。
你的代碼可能看起來是這樣的:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
Inherits="WebApplication1._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function validateTextBoxen(sender, args) {
// You'll have more thorough validation, I'm sure
var value1 = parseFloat(
document.getElementById('<%=textBox1.ClientID%>').value);
var value2 = parseFloat(
document.getElementById('<%=textBox2.ClientID%>').value);
args.IsValid = (value1 + value2) < 100;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="textBox1" runat="server" />
<asp:TextBox ID="textBox2" runat="server" />
<asp:CustomValidator runat="server" EnableClientScript="true"
OnServerValidate="onCustomValidation" ID="customValidator"
ErrorMessage="Invalid!"
SetFocusOnError="true" ClientValidationFunction="validateTextBoxen"/>
<asp:Button runat="server" OnClick="button_Click"/>
<asp:Literal runat="server" ID="placeholder" />
</div>
</form>
</body>
</html>
代碼隱藏:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void onCustomValidation(
object sender, ServerValidateEventArgs e)
{
float value1 = 0f;
float value2 = 0f;
if (!float.TryParse(textBox1.Text, out value1)
|| !float.TryParse(textBox2.Text, out value2)
|| value1 + value2 > 100f)
{
e.IsValid = false;
}
}
protected void button_Click(object sender, EventArgs args)
{
placeholder.Text = Page.IsValid ? "Valid" : "Invalid";
}
}
}
如今,以驗證HTML表單IMO最好的辦法就是用一個jQuery插件like this one。
在客戶端,對按鈕的點擊,則使用ClientClick屬性,並將其設置爲javascript函數名驗證輸入
例如
<asp:Button ID="btnSubmit" OnClientClick=" return validate()" runat="server" Text="Submit" ></asp:Button>
和JavaScript編寫了一個validate()函數,它檢查兩個輸入