使用JavaScript和ASP.NET设置或添加/删除css属性时闪烁
我试图做一些不同的、更干净的事情,但却碰上了砖墙。 我不熟悉ASP.NET(无MVC) 我有一个HTML段落标记,其中包含一条错误消息,我还添加了服务器控件或属性,以便使用服务器端验证显示/隐藏 我通常将标签包装在一个列表中,以便表单元素精确对齐。 段落的默认样式设置为使用JavaScript和ASP.NET设置或添加/删除css属性时闪烁,javascript,asp.net,Javascript,Asp.net,我试图做一些不同的、更干净的事情,但却碰上了砖墙。 我不熟悉ASP.NET(无MVC) 我有一个HTML段落标记,其中包含一条错误消息,我还添加了服务器控件或属性,以便使用服务器端验证显示/隐藏 我通常将标签包装在一个列表中,以便表单元素精确对齐。 段落的默认样式设置为display:none,这会在页面加载时隐藏整个段落,因此没有DOM延迟 如果用户点击提交按钮时出现错误,则该样式将被另一个样式替换,该样式将其设置为:display:block 单击按钮时,错误消息会显示,但会像闪烁一样迅速消
display:none,
这会在页面加载时隐藏整个段落,因此没有DOM延迟
如果用户点击提交按钮时出现错误,则该样式将被另一个样式替换,该样式将其设置为:display:block代码>
单击按钮时,错误消息会显示,但会像闪烁一样迅速消失:
代码如下所示:
无效用户名:
数字,仅大写/小写字母。没有特殊字符
*用户名
下面是JavaScript:(此代码是暂定的)
函数validateForm(){
var元素=document.forms[“成员资格”];
var userNameFlg=document.getElementById(“lstUserNameErrorMsg”);
var Isleters=/^[A-Za-z]+$/;
if(element.txtUserName.value.match(Isleters)和
element.txtUserName.value.length>=2){
userNameFlg.setAttribute(“类”、“默认值”);
}
否则{
userNameFlg.setAttribute(“类”,“失败”);
}
返回false;
}
这是一个新领域:我错在哪里
谢谢 在方法调用validateForm()
之前添加return
回发仍在发生,因此该段落再次被隐藏
<asp:Button ID="btnSubmit" runat="server" Text="Create Accounte"
OnClick="btnSubmit_Click" OnClientClick="return validateForm()" TabIndex="11" />
另外,由于你刚刚开始,我建议你看看。
您也可以通过使用Asp.Net验证控件来实现这一点。请参阅Hello@newoil Programmer:这会阻止表单提交吗?是的,回击成功了。谢谢你。我是否仍然需要在函数中返回false?是的,返回false将确保回发停止。验证函数应该执行验证,如果一切正常,则返回true;如果验证失败,则返回false。true将允许回发。好吧,我有点迷茫:即使输入了正确的值,表单也没有回发:我尝试添加一个布尔值来表示正确返回的布尔值是否等于true,但这给了我同样的问题。当我在条件语句之后在函数本身中返回false时,函数总是返回false。我快到了。那么,如果为帖子输入了正确的值,我如何让函数返回true呢?很抱歉,刚才看到了你的评论,添加了回复…还有一些建议。还更改了您的正则表达式以允许数字,因为这是您的要求非常感谢。我很想学习JQuery,但在深入研究JQuery之前,我想了解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" />
<asp:Button ID="btnSubmit" runat="server" Text="Create Accounte"
OnClick="btnSubmit_Click" OnClientClick="return validateForm()" TabIndex="11" />
function validateForm() {
var userNameFlg = document.getElementById("lstUserNameErrorMsg");
var txtBox = document.getElementById("txtUserName");
var isLetters = /^[A-Za-z0-9]+$/;
if (txtBox.value != null && txtBox.value.match(isLetters) && txtBox.value.length >= 2) {
userNameFlg.setAttribute("class", "default");
return true;
}
else {
userNameFlg.setAttribute("class", "failed");
return false;
}
}