需求:假如一共四列,有先后次序,第二列为空时,第三列不可有值,依次类推。
前台:
- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CheckNull.aspx.cs" Inherits="test_CheckNull" %>
- <!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 fNotNull(){
- //boolean b = true;//布尔型没有成功。
- var b = 0;//0代表通过验证,1代表没有通过验证。
- if(document.getElementById('tb1').value=="")
- b = 1;
- for(i=1;i<5;i++){//设置id范围。
- var t = 'tb' + i;
- var txt = document.getElementById(t);
- if(txt.value=="")//如果为空,则判断后面的是否有值。
- for(j=i+1;j<5;j++){//设置后面id范围。这里应该从i+1开始判断。
- var x = 'tb' + j;
- var tt = document.getElementById(x);
- if(tt.value!="")
- b = 1;
- }
- }
- return b;
- }
- function fCheck(){
- if(fNotNull()=="0")
- alert('通过验证');
- else
- alert('第一列不可为空,且不能隔行添写!');
- }
- </script>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- <asp:TextBox ID="tb1" runat="server"></asp:TextBox>
- <asp:TextBox ID="tb2" runat="server"></asp:TextBox>
- <asp:TextBox ID="tb3" runat="server"></asp:TextBox>
- <asp:TextBox ID="tb4" runat="server"></asp:TextBox>
- <input type="button" value="JS验证" onclick="fCheck();" />
- <asp:Button ID="btnCheck" runat="server" Text="C#验证" OnClick="btnCheck_Click" />
- </div>
- </form>
- </body>
- </html>
后台:
- using System;
- using System.Data;
- using System.Configuration;
- using System.Collections;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- public partial class test_CheckNull : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- }
- protected void btnCheck_Click(object sender, EventArgs e)
- {
- if (CheckNull())
- Response.Write("通过验证!");
- else
- Response.Write("第一列不可为空,且不可隔行添写!");
- }
- /// <summary>
- /// 判断是否隔行添写数据。
- /// </summary>
- /// <returns></returns>
- private bool CheckNull()
- {
- bool b = true;
- ArrayList arr = new ArrayList();
- arr.Add(this.tb1.Text.Trim());
- arr.Add(this.tb2.Text.Trim());
- arr.Add(this.tb3.Text.Trim());
- arr.Add(this.tb4.Text.Trim());
- for (int i = 0; i < arr.Count; i++)
- {
- if (arr[i].ToString() == "")//如果这列为空,则判断后面的列是否有值。
- for (int j = i + 1; j < arr.Count; j++)
- {
- if (arr[j].ToString() != "")
- b = false;
- }
- }
- return b;
- }
- }
end