我正在尝试做一些不同且更清洁的事情,但会碰到砖墙。我是 ASP.NET(无 MVC)的新手。
我有一个包含错误消息的 HTML 段落标记,我还添加了服务器控件或属性,以便我可以使用服务器端验证显示/隐藏。
我通常将标签包装在一个列表中,以便准确对齐表单元素。段落的默认样式设置为display: none,
在页面加载时隐藏整个段落,因此没有 DOM 延迟。
如果用户点击提交按钮时出现错误,则样式将替换为另一种样式,该样式将其设置为:display: block;
当我单击按钮时,错误消息会显示,但会像闪烁一样迅速消失:
代码如下所示:
<%-- USER NAME ERROR --%>
<li>
<p class="default" runat="server" id="lstUserNameErrorMsg">
<span>Invalid Username:</span>
Numbers, uppercase/lower case letters only. No special characters
</p>
<%-- USERNAME TEXTBOX --%>
<asp:TextBox ID="txtUserName" runat="server" MaxLength="16" TabIndex="4">
</asp:TextBox>
<label runat="server" id="lblUserName" for="txtUserName">* Username</label>
</li>
这是JavaScript:(此代码是暂定的)
<script type="text/javascript">
function validateForm() {
var element = document.forms["membership"];
var userNameFlg = document.getElementById("lstUserNameErrorMsg");
var isLetters = /^[A-Za-z]+$/;
if (element.txtUserName.value.match(isLetters) &&
element.txtUserName.value.length >= 2) {
userNameFlg.setAttribute("class", "default");
}
else {
userNameFlg.setAttribute("class", "failed");
}
return false;
}
</script>
<asp:Button ID="btnSubmit" runat="server" Text="Create Accounte"
OnClick="btnSubmit_Click" OnClientClick="validateForm()" TabIndex="11" />
这是新领域:我哪里错了?
谢谢!