在asp.net中使用Masterpage进行jQuery验证

时间:2009-04-22 10:19:32

标签: asp.net jquery

我在masterpage中有一个childpage.aspx,我正在尝试通过母版页验证子页面中的必填字段,以下代码我已在母版页中写入验证

$(document).ready(function()
    {
                var container = $('#sam586'); 
                $("#aspnetForm").validate(
                 { 
                    errorContainer: container,
                    //errorClass: "invalid",  
                    errorLabelContainer: $("#sam586"),
                    wrapper: 'li',
                    meta: "validate",
                    rules:
                    {
                        ctl00_ContentPlaceHolder1_txtUserName:
                        {
                           required:true
                        },
                        ctl00_ContentPlaceHolder1_txtPassword:
                        {
                            required:true
                        },
                        ctl00_ContentPlaceHolder1_txtFirstName:
                        {
                            required:true
                        },
                        ctl00_ContentPlaceHolder1_txtLastName:
                        {
                            required:true
                        },
                        ctl00_ContentPlaceHolder1_ddlDepartment:
                        {
                            required:true
                        },
                        ctl00_ContentPlaceHolder1_ddlDesignation:
                        {
                            required:true
                        },
                        ctl00_ContentPlaceHolder1_txtEmail:
                        {
                            required:true,
                            email:true
                        },
                        ctl00_ContentPlaceHolder1_ddlStatus:
                        {
                            required:true
                        },
                        ctl00_ContentPlaceHolder1_ddlRole:
                        {
                            required:true
                        }
                    },
                    messages:
                    {
                        ctl00_ContentPlaceHolder1_txtUserName:"Please enter username",
                        ctl00_ContentPlaceHolder1_txtPassword:"Please enter password",
                        ctl00_ContentPlaceHolder1_txtFirstName:"please enter first name",
                        ctl00_ContentPlaceHolder1_txtLastName:"Please enter last name",
                        ctl00_ContentPlaceHolder1_ddlDepartment:"Select Department",
                        ctl00_ContentPlaceHolder1_ddlDesignation:"Select Designation",
                        ctl00_ContentPlaceHolder1_txtEmail:"Enter proper email address",
                        ctl00_ContentPlaceHolder1_ddlStatus:"Select Status",
                        ctl00_ContentPlaceHolder1_ddlRole:"Select Role"
                    }
                });
            });

什么时候在单个aspx页面中尝试所有这些东西,它可以很好地工作。

但问题是我想在div标签名称中显示验证错误:(“sam586”)稍后将在jquery的帮助下转换为greypopup。 所以任何人都可以帮忙,或者任何建议都是值得的。

提前感谢。

1 个答案:

答案 0 :(得分:1)

目前尚不清楚,但我猜你在查找内容控件方面遇到了麻烦。

如果ID为“sam586”的控件位于内容页面中,那么其ID名称将在结果页面中被破坏,$(“#sam586”)将找不到它,因为它的id将是“ctl ## _ ..._ sam586“我相信你现在知道了。

我已经看到了几种解决方法:

为“sam586”分配一个唯一的类,以便您可以使用类$(“。samsclass”)找到它

只需使用属性语法查找以“sam586”结尾的任何标记:$(“input [id $ ='sam586']”)。

在内容页面的aspx(以及您希望母版页代码工作的任何内容页面)中创建一个javascript变量。将clientID分配给变量。您的母版页代码现在可以使用该变量。

在content.aspx中:

 script type="text/javascript">

    var samsvar = '#<%= sam586.ClientID %>';

 /script> 

在母版页

$(samsvar).text();