我在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。 所以任何人都可以帮忙,或者任何建议都是值得的。
提前感谢。
答案 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();