日期:2014-05-16  浏览次数:20336 次

JQUERY做表单验证非空,密码文本框修改ID名字后无法验证!!急
如题,本人用JQUERY做表单验证非空,密码文本框修改ID名字后无法验证,我用下载DEMO在VS2005中测试,都很好正常,但我想用到我的程序里,也需要非空字段验证,我把文本框的名字由
          <asp:TextBox ID="password1" runat="server"></asp:TextBox><td><div id="password1Tip" style="width:250px"></div></td>改成TEXTBOX1后,把验证部分$("#TEXTBOX1").formValidator({onshow:"请输入密码",onfocus:"至少1个长度",oncorrect:"密码合法"}).inputValidator({min:1,empty:{leftempty:false,rightempty:false,emptyerror:"密码两边不能有空符号"},onerror:"密码不能为空,请确认"});验证密码字段非空就不起作用了,我查了整个JS包和页面没有别的地方引用这个ID了,但就是不能改名字,改了 password1后就不能验证了,刚刚用JQUERY,请大家帮个忙!!我要是想再自己的程序了用,该怎么改啊?!

------解决方案--------------------
$("#TEXTBOX1")
=>
$("#<%=TEXTBOX1.ClientID%>")
------解决方案--------------------
带runat=Server的textbox,$("#TEXTBOX1")是找不到它的id的
以下为引用内容:
ClientID由 ASP.NET 生成的服务器控件标识符。
有时,不能为控件分配唯一的名称。例如,如果 Repeater 控件在它的某个模板中包含一个 Label 控件,则为 Repeater 控件中的各个项呈现该 Label 控件的一个实例。在呈现控件的多个实例时,为防止出现命名冲突,ASP.NET 为页上的各个服务器控件自动生成一个唯一的 ClientID 值。ClientID 值是通过连接控件的 ID 值和它的父控件的 UniqueID 值生成的。如果未指定控件的 ID 值,则使用自动生成的值。生成的 ID 的各个部分以下划线字符 (_) 分隔。
------解决方案--------------------
<div id="password1Tip" 
=>
<div id="<%=TEXTBOX1.ClientID%>Tip" 
------解决方案--------------------
引用:
带runat=Server的textbox,$("#TEXTBOX1")是找不到它的id的
以下为引用内容:
ClientID由 ASP.NET 生成的服务器控件标识符。
有时,不能为控件分配唯一的名称。例如,如果 Repeater 控件在它的某个模板中包含一个 Label 控件,则为 Repeater 控件中的各个项呈现该 Label 控件的一个实例。在呈现控件的多个实例时,为防止出现命名冲突,ASP.NET 为页上的各个服务器控件自动生成一个唯一的 ClientID 值。ClientID 值是通过连接控件的 ID 值和它的父控件的 UniqueID 值生成的。如果未指定控件的 ID 值,则使用自动生成的值。生成的 ID 的各个部分以下划线字符 (_) 分隔。


#3不是说了,runat控件放到母版或者repeater这种控件里面id已经被修改过了,你要一一修改对应关系

要不就改为客户端控件,用一个int类型的全局变量来生成唯一id

public int id=0;


   <input id="password<%=id%>" name="password<%=id%>"><td><div id="password<%=id++%>Tip" style="width:250px"></div></td>