自訂驗證類(用戶端和伺服器端同時驗證,支援Ajax驗證)[開源]

來源:互聯網
上載者:User

    最近在做一個小型項目,用到一個使用者註冊,由於安全考慮,要求用戶端和伺服器端同時驗證,我在項目中用的是微軟的驗證控制項,在使用的過程中發現真是很麻煩,在頁面中拖了十幾個驗證控制項不說,因為驗證的時候驗證失敗時自訂顯示一些錯誤資訊,做起來相當麻煩,有些小的改動找個代碼都不方便,最關鍵的是無法重複使用,所以想自己做一個驗證的控制項,本來想做自訂控制項,後來發現由於驗證方面定義的部分比較多,最後選擇使用類庫。通過頁面調用類來實現控制項的驗證,好了,廢話就不多說了,下面請大家一下,初次開源,請大家多多指教。

先請大家看看頁面調用的代碼。

頁面調用
using System;
using System.Collections;
using System.Configuration;
using System.Data;
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;

namespace Demo
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        Koodoo.Validation.FormValidate fv;
        protected void Page_Load(object sender, EventArgs e)
        {
            fv = new Koodoo.Validation.FormValidate(this, "Button1", true);
            fv.ValiAjaxEmail("UserEmail", "請輸入正確格式的Email", "您輸入的郵箱已存在", "CheckEmail.aspx", "key");
            fv.ValiNormalNumber("TextBox1", "請輸入數字,長度為2-6", false, 2, 6);
            fv.ValiCompare("TextBox2", "上一個數字不相等", "TextBox1");
            fv.ValiCheckbox("CheckBoxList1", "請至少選擇兩個", 2);
            fv.ValiRadio("RadioButtonList1", "請選擇");
            fv.ValiSelect("DropDownList1", "請選擇", "請選擇");
            fv.Display();
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            if (fv.Submit_Server())
            {
                Response.Write("驗證通過");
            }
            else
            {
                Response.Write("驗證未通過");
            }
        }
    }
}

執行個體化1->參數1:當前頁面,參數2:提交的按鈕,參數3:是否是開發階段(當處於開發階段時,每次都會產生JS代碼放到網站的JS檔案夾下,如處於運行階段,就設為false)

fv = new Koodoo.Validation.FormValidate(this, "Button1", true);

執行個體化2->參數1:當前頁面,參數2:提交的按鈕,參數3:顯示錯誤資訊方式(1:每一下控制項都有對就的Label顯示錯誤,2:在一個指定的Label上顯示所有錯誤資訊,3:在一個指定Label上顯示一條錯誤資訊)參數4:顯示錯誤資訊的指定Label,參數3為2和3時有效,參數5:是否是開發階段

fv = new Koodoo.Validation.FormValidate(this, "Buttin1", 1, "ErrMsg", true);

在使用後,調用Display()向頁面加入JS代碼。

在伺服器端驗證調用Submit_Server(),如果返回true則驗證通過。

當使用驗證報錯時,可以自訂Js指令碼可以用於顯示頁面一些自訂的報錯樣式

如我這裡面用到的: (註:報錯方式為 1 時,對就的顯示錯誤Label的ID為,被驗證控制項加“_Err”,如果前面加必填*時,則加"_X",說的不太清楚,大家看源碼吧)

var ShowErr = function(id)

{
    $("#"+id).attr("style","border:1px #ff0000 solid;");
    $("#"+id+"_Err").attr("style","color:red");
    $("#"+id+"_X").attr("style","color:red");
}
var HideErr = function(id){
    $("#"+id).attr("style","");
    $("#"+id+"_Err").attr("style","");
    $("#"+id+"_X").attr("style","");
}

更多的內容,大家看一下源碼吧

源碼已更新 源碼下載

第一次發到首頁,等待大家拍磚。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.