首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

jquery vaildate 插件 remote印证方式应用

2013-10-10 
jquery vaildate 插件 remote验证方式应用环境技术:Vs2012 ,Asp.Net MVC4.0 , Razor, Jquery 插件 Jquery

jquery vaildate 插件 remote验证方式应用

环境技术:

Vs2012 ,Asp.Net MVC4.0 , Razor, Jquery 插件 Jquery Vaildation

Jquery Vaildation插件主要是对 页面的表单进行验证

常用的

(1)required:true               必输字段
(2)remote:"@Url.action("actionName","controllerName")"          使用ajax方法调用actionName验证输入值
(3)email:true                  必须输入正确格式的电子邮件
(4)url:true                    必须输入正确格式的网址
(5)date:true                   必须输入正确格式的日期 日期校验ie6出错,慎用
(6)dateISO:true                必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性
(7)number:true                 必须输入合法的数字(负数,小数)
(8)digits:true                 必须输入整数
(9)creditcard:                 必须输入合法的信用卡号
(10)equalTo:"#field"           输入值必须和#field相同
(11)accept:                    输入拥有合法后缀名的字符串(上传文件的后缀)
(12)maxlength:5                输入长度最多是5的字符串(汉字算一个字符)
(13)minlength:10               输入长度最小是10的字符串(汉字算一个字符)
(14)rangelength:[5,10]         输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)
(15)range:[5,10]               输入值必须介于 5 和 10 之间
(16)max:5                      输入值不能大于5
(17)min:10                     输入值不能小于10

 

在这里详细说说 remote,并将校验规则写到js代码中,下面请看实例,然后总结:

 

1.页面Razor引擎 (注意淡黄色代码)

 

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.0.min.js" type="text/javascript"></script>

<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js" type="text/javascript"></script>

 

@using Omega.DataModels
@model RegionQuota

 <form action="@Url.Action("saveQuota", "Region")" method="post" id="QuotaForm" >
        <table>
            <tr>
                <td>Region Name: @Html.HiddenFor(q => q.RegionID)</td>
            </tr>
            <tr>
                <td>Year:
                </td>
                <td>&nbsp;&nbsp;
                @if (Model.RegionQuotaID == 0)
                {
                    @Html.DropDownListFor(q => Model.Year, Omega.ORION.DropdownList.DDL_Years())
                }
                else
                {
                    @Html.DisplayFor(q => Model.Year)
                }
                </td>
            </tr>
            <tr>
                <td>Month:</td>
                <td>&nbsp;&nbsp;
                @if (Model.RegionQuotaID == 0)
                {
                    @Html.DropDownListFor(q => Model.Month, Omega.ORION.DropdownList.DDL_Months())
                }
                else
                {
                    @Html.DisplayFor(q => Model.Month)
                }
                </td>
            </tr>
            <tr>
                <td>Monthly Adjusted Income Quota: &nbsp; </td>
                <td>$ @Html.TextBoxFor(q => Model.AdjustedIncome) </td>
            </tr>
            <tr>
                <td>Adjusted Income Quota Weight: </td>
                <td>&nbsp;&nbsp; @Html.TextBoxFor(q => Model.AdjustedIncomeWeight) %</td>
            </tr>
            <tr>
                <td>
                    <div id="operPanel">
                        @Html.HiddenFor(q => Model.RegionQuotaID)
                        <input type="button" value="Cancel" onclick="javascript: history.go(-1)" />
                        <input type="submit" value="Save" id="btnSave" />
                    </div>
                </td>
            </tr>
        </table>
    </form>

 

<script type="text/javascript">

    $("#QuotaForm").validate({
        rules: {
            Year: {
                required: true
            },
            Month: {
                required: true,
                remote: {
                    url: "@Url.Action("IsExitQuota", "Region")",
                    type: "post",
                    dataType: "json",
                    data: {
                        RegionID: function () { return $("#RegionID").val(); },
                        Year: function () { return $("#Year option:selected").text(); },
                        Month: function () { return $("#Month option:selected").text(); }
                    }
                }
            },
            AdjustedIncomeWeight: {
                range: [0, 100.00]
            }
           
        },
        messages: {
            Month: {
                remote: "The month you entered is already in database!"
            }
        }
    });
</script>

 

 

2. RegionController 里面对应的 IsExitQuota 方法

      

 

        //这里需要注意的是,返回值是JsonResult(因为页面remote里面设置的是json数据格式)


        public JsonResult IsExitQuota(int RegionID, int Year, int Month)
        {
             RegionBLL regionBll = new RegionBLL(EFConnectionString);
             return Json(regionBll.IsExitQuotaByRegionIDYearMonth(RegionID, Year, Month), JsonRequestBehavior.AllowGet);
        }

 

     本实例需求是这样的: 当添加一个RegionQuota时候,一条记录里  不允许 有相同的 Year,相同的Month,相同的RegionID

     RegionID为隐藏的值域,Year,Month,分别为可选的年月,当Month失去焦点时,需要异步的去数据库查询,是否存在 RegionID,Year,Month这样的记录,如果存在,就告诉浏览器,不能让表单提交,如果不存在则提交表单

 

 

 

3. Model类(仅供参照)

 

 

namespace Omega.DataModels
{
    /// <summary>
    /// 地区配额
    /// </summary>
    public class RegionQuota
    {
        #region Navigation Properties
        /// <summary>
        /// 区域配额ID
        /// </summary>
        public virtual int RegionQuotaID { get; set; }
       
        /// <summary>
        /// 区域ID
        /// </summary>
        [Required]
        public virtual int RegionID { get; set; }
        /// <summary>
        /// 调整后的收入
        /// </summary>
        [Range(0.00, (double)decimal.MaxValue)]
        public virtual Nullable<decimal> AdjustedIncome { get; set; }
       
        /// <summary>
        /// 调整后的收入份额
        /// </summary>
        public virtual Nullable<decimal> AdjustedIncomeWeight { get; set; }
       
        /// <summary>
        /// 年
        /// </summary>
        public virtual Nullable<int> Year { get; set; }
       
        /// <summary>
        /// 月
        /// </summary>
        public virtual Nullable<int> Month { get; set; }
        #endregion

        #region Navigation Properties
       
        /// <summary>
        /// 地区
        /// </summary>
        public virtual Region Region { get; set; }

         #endregion

       
    }
}

 

 

 

4.结果:

 当 月  下拉框 失去焦点 并且  选中的值发生改变  的时候,浏览器便向服务器发出IsExitQuota 的请求,请求完之后,返回一个json的 bool数据,如果为true,Month这个字段便会校验有效,否则,会 提示:The month you entered is already in database

jquery vaildate 插件 remote印证方式应用

 

 

 

 

 

 

 

 

 

热点排行