所以我有一个小问题,我不明白它为什么这样做。我有一个文本框,它使用JavaScript进行客户端验证,并使用C#进行服务器端验证,所以您可以从下面的屏幕截图中看到,我已经完成了一些服务器端验证,因此当用户点击注册时没有超过6在文本框中输入的字符,文本框会再有一个红色的轮廓:TextBox轮廓被覆盖
然而,因为我也有一个客户端验证的JavaScript,在超过6个字符的用户类型的文本框应该有一个绿色的轮廓,这下面的屏幕截图演示了它的功能,但服务器端验证文本框轮廓仍然保留在底下,因此您仍然可以在绿色下看到红色轮廓:
我只是不明白为什么会发生这种情况,据我所知大纲属性是相同的每个文本框,为什么要创建新的轮廓?
这是我的客户端验证(javascipt的)代码:
function checkPassword(password)
{
password_txt = document.getElementById('<%= password_txt.ClientID %>');
if (password == '')
{
password_lbl.innerHTML = 'Password must be at least 6 characters';
password_lbl.style.color = "red";
password_txt.style.outline = "1px solid red"
//register_btn.disabled = true;
passwordCheck = false;
}
else
{
password_lbl.innerHTML = 'Perfect!';
password_lbl.style.color = "green";
password_txt.style.outline = "1px solid green"
//register_btn.disabled = true;
}
的checkPassword使用的文本框keyUp事件调用的。现在这是服务器端验证:
if (password_txt.Text == "")
{
password_lbl.Text = "Password must be at least 6 characters";
password_lbl.ForeColor = System.Drawing.Color.Red;
password_txt.BorderColor = System.Drawing.Color.Red;
password_txt.BorderWidth = 1;
password_txt.BorderStyle = System.Web.UI.WebControls.BorderStyle.Solid;
register_btn.Enabled = false;
}
else
{
password_lbl.Text = "Perfect!";
password_lbl.ForeColor = System.Drawing.Color.Green;
password_txt.BorderColor = System.Drawing.Color.Green;
password_txt.BorderWidth = 1;
password_txt.BorderStyle = System.Web.UI.WebControls.BorderStyle.Solid;
register_btn.Enabled = false;
passwordCheck = true;
}
这是使用OnClick调用的。
有没有人明白为什么它的表演是这样的?
您也可以尝试设置前清除'.outline'财产它在绿色'.outline =“0px”''之前'.outline =“1px纯绿色' – TestWell
@musefan完美的工作!我仍然不明白为什么它不同于轮廓 – mogorilla