我正在学习外部使用JavaScript的客户端表单验证,用户控件(.ascx文件)中存在的登录按钮,并在我的登录页面(.aspx文件)中调用。我已经确认在用户控件中调用了一个简单的hello world alert,但它在页面加载时执行此操作。我希望该功能仅在用户按下“登录”后才能进行测试。
在我的.js文件中:
function test() {
alert("hello world");
}
//now for the real functions
function validate()
{
var UserName = document.getElementById('<%=_username.ClientID %>').value;
var Password = document.getElementById('<%=_password.ClientID %>').value;
if (UserName == "") {
alert("Name Field can not be blank");
return false;
}
return true;
}
我的用户控制:
...
<fieldset class="login">
<legend class="login">Login</legend>
<label for="<%=_username.ClientID%>">
User Name:</label>
<asp:TextBox ID="_username" runat="server" CssClass="login" />
<label for="<%=_password.ClientID%>">
Password:</label>
<asp:TextBox ID="_password" runat="server" CssClass="login" TextMode="Password" />
<br />
<span class="response">
<asp:Literal ID="_response" runat="server" /></span>
<asp:Button ID="_login" runat="server" Text="Login" />
<script type="text/javascript" language="javascript">validate();</script>
</fieldset>
在我的页面中调用哪个,包含javascript源文件:
<uc:Login id="_login" runat="server" />
当我使用这一行时:
<script type="text/javascript" language="javascript">validate();</script>
没有任何事情应该发生;我不知道如何使这个函数等到被按下登录按钮之后再被调用。