我需要了解如何使用jquery访问对象asp,因为我有一个文件,它是在aspx后面的代码的页面加载中注册的,脚本需要进行验证,我在不同的站点上看到,我可以用这个<%=txtName.UniqueID %>来实现它,但是我不工作,我会把我的代码放到我的代码中,任何人都可以帮我。谢谢
在脚本文件中触发验证此方法的按钮
<asp:Button ID="btnOk" CssClass="btnOk" runat="server" Text="Ok" /> the js
$(".btnOk").click(validateData);
function validateData() {
$("form").validate({
rules:
{
'<%=txtName.UniqueID %>': "required"
}
});
}在我注册脚本的地方我的代码
ClientScript.RegisterClientScriptBlock(this.GetType(), "MyScript", "<script language=javascript src='js/SetIndicators.js'> </script>");
ClientScript.RegisterClientScriptBlock(this.GetType(), "Validator", "<script language=javascript src='js/jquery.validate.js'> </script>");更新
这是我需要验证的文本输入。
<asp:TextBox ID="txtLayerName" CssClass="txtLayerName" runat="server"> </asp:TextBox>对于'<%=txtName.UniqueID %>'和<%=txtName.UniqueID %>,'.txtLayerName'也不起作用
更新2
这是asp的呈现名称。
<input name="ctl00$ContentPlaceHolder1$txtLayerName" type="text" id="ctl00_ContentPlaceHolder1_txtLayerName" class="txtLayerName required" />发布于 2011-06-13 13:52:53
jquery使用html输入的NAME属性进行验证,而不是使用ID。我已经有一段时间没有使用webforms了,所以我不知道名称和id是否匹配。但这可能是值得研究的。
编辑:我在飞行中添加了验证,并取得了很大的成功,如下所示:
$(function(){
$("form").validate();
$('.txtLayerName').each(function () {
//add the required validator to these!
$(this).rules('add', {required: true});
});
});发布于 2011-06-10 21:53:26
我想你想:
'<%= txtLayerName.ClientID %>': "required"另外,请记住,您可以使用CSS类,而不是像这样定义规则,这比较容易一些。例如:
<asp:TextBox ID="txtLayerName" CssClass="txtLayerName required" runat="server" />发布于 2011-06-13 13:44:14
我很幸运地使用了jQuery的以“选择器”结尾,因为控件的服务器端ID始终是客户机ID字符串的最后一部分。
例如,按钮的客户端ID可能类似于"ctl00$foo$bar$btnOk“,那么您的jQuery是:
$("[id$=btnOk]").click(validateData);然后,您可以对TextBox做同样的事情。
rules:
{
$("[id$=txtLayerName]").attr("id") : "required"
}更新:
试一试:
rules = {};
rules[$("[id$=txtLayerName]").attr("id")] = "required";由于对象本质上只是具有对元素的直接命名访问的数组,所以您可以创建一个数组并像使用一个对象一样使用它。
https://stackoverflow.com/questions/6130639
复制相似问题