这几天都在用Atlas做一个网站的Demo,遇到了一个自己不懂的问题。
请先看下面的用Atlas调用本地Web Services实现检查输入用户名是否在数据库中存在的代码:——暂且命名为“代码一”
请看在“代码一”中的第4行
请先看下面的用Atlas调用本地Web Services实现检查输入用户名是否在数据库中存在的代码:——暂且命名为“代码一”
1
<
script language
=
"
javascript
"
type
=
"
text/javascript
"
>
2
function
TestonClick()
3
{
4
var username = $("ctl00_CPHolder1_CreateUserWizard1_CreateUserStepContainer_UserName").value;
5
AtlasService.TestUser(username,onTestUserComplete);
6
}
7
function
onTestUserComplete(result)
8
{
9
if (result)
10
$("user_sidebarTR").innerHTML = "恭喜您,您可以使用此用户名,请继续……";
11
else
12
$("user_sidebarTR").innerHTML = "对不起,用户名已存在,请您更换……";
13
}
14
</
script
>
再结合下面的代码(ASP.Net2.0工具箱登录选项卡中“CreateUserWizard”服务器控件中的一部分Html代码):——暂且命名为“代码二”
<
script language
=
"
javascript
"
type
=
"
text/javascript
"
>
2
function
TestonClick()3
{4
var username = $("ctl00_CPHolder1_CreateUserWizard1_CreateUserStepContainer_UserName").value;5
AtlasService.TestUser(username,onTestUserComplete);6
}
7
function
onTestUserComplete(result)8
{9
if (result)10
$("user_sidebarTR").innerHTML = "恭喜您,您可以使用此用户名,请继续……";11
else12
$("user_sidebarTR").innerHTML = "对不起,用户名已存在,请您更换……";13
}
14
</
script
>
1
……
2
<
tr
>
3
<
td
align
="right"
>
4
<
asp:Label
ID
="UserNameLabel"
runat
="server"
AssociatedControlID
="UserName"
>
用户名:
</
asp:Label
></
td
>
5
<
td
>
6
<
asp:TextBox
ID
="UserName"
runat
="server"
></
asp:TextBox
>
7
<
asp:RequiredFieldValidator
ID
="UserNameRequired"
runat
="server"
ControlToValidate
="UserName"
8
ErrorMessage
="必须填写“用户名”。"
ToolTip
="必须填写“用户名”。"
ValidationGroup
="CreateUserWizard1"
>
*
</
asp:RequiredFieldValidator
>
9
<
input
id
="Test"
type
="button"
value
="检验"
onclick
="return TestonClick()"
/>
10
</
td
>
11
</
tr
>
12
……
(备注:现在的代码没有问题可以运行的很正常)
……2
<
tr
>
3
<
td
align
="right"
>
4
<
asp:Label
ID
="UserNameLabel"
runat
="server"
AssociatedControlID
="UserName"
>
用户名:
</
asp:Label
></
td
>
5
<
td
>
6
<
asp:TextBox
ID
="UserName"
runat
="server"
></
asp:TextBox
>
7
<
asp:RequiredFieldValidator
ID
="UserNameRequired"
runat
="server"
ControlToValidate
="UserName"
8
ErrorMessage
="必须填写“用户名”。"
ToolTip
="必须填写“用户名”。"
ValidationGroup
="CreateUserWizard1"
>
*
</
asp:RequiredFieldValidator
>
9
<
input
id
="Test"
type
="button"
value
="检验"
onclick
="return TestonClick()"
/>
10
</
td
>
11
</
tr
>
12
……
请看在“代码一”中的第4行
var
username
=
$(
"
ctl00_CPHolder1_CreateUserWizard1_CreateUserStepContainer_UserName
"
).value;
。这段代码是想查找到在“代码二”中第6行的
<
asp:TextBox
ID
="UserName"
runat
="server"
></
asp:TextBox
>
TextBox服务器控件的值。如果我把“代码一”中的第4行改为
var
username
=
$(
"
UserName
"
).value;
是错误的。因为程序运行后“代码二”中TextBox服务器控件的ID并不是编写时给的“ID="UserName"”而是“ID="ctl00_CPHolder1_CreateUserWizard1_CreateUserStepContainer_UserName"”,所以我想请问:如果我不直接像现在在“代码一”中第4行那样写出具体的服务器控件ID,我该如何取出服务器控件的ID呢?
本文转自刚刚博客园博客,原文链接:http://www.cnblogs.com/lijigang/archive/2006/10/21/535687.html,如需转载请自行联系原作者