我正在进行服务器端验证,但似乎它的工作方式不合适。以下是示例代码
//Validation
private void validation()
{
if (txtFName.Text == string.Empty) { Alert("Invalid Name"); return; }
if (txtLName.Text == string.Empty) { Alert("Invalid Name"); return; }
}
// Alert mesage
public void Alert(string msg)
{
ClientScript.RegisterStartupScript(typeof(Page), "SymbolError", "<script
type='text/javascript'>alert('" + msg + "');</script>");
}
在我的按钮下一次点击事件我正在调用此函数,如
protected void button_Click(object sender, EventArgs e)
{
validation();
}
令人惊讶的是,即使我没有在texbox中输入任何内容(意味着文本框为空)......也没有警报。然而,它应该提醒。
有人能指出我做错了什么。感谢您的帮助。
修改
最令人讨厌的是,相同的代码在其他页面中工作正常。如果字段为空或验证失败,则会发出警报。不确定这个页面有什么问题。
Fe指针...这个特定的aspx页面...有很多用户控件和那些控件ascx页面都有Javascript。我可能是任何问题
答案 0 :(得分:0)
我刚试过以下代码。
protected void Button1_Click(object sender, EventArgs e)
{
validation();
}
private void validation()
{
Alert("Invalid Name");
}
// Alert mesage
public void Alert(string msg)
{
ClientScript.RegisterStartupScript(typeof(Page), "SymbolError", "<script type='text/javascript'>alert('" + msg + "');</script>");
}
似乎一切都运转良好。
看看这是否有任何设置问题。 (不确定我只是在做试验和错误)。
http://bytes.com/topic/asp-net/answers/518330-clientscript-registerstartupscript
答案 1 :(得分:0)
我想你使用Asp.net验证控件,比如必填字段验证器,比较验证器。因为框架会为你做所有的事情。那么为什么你要自己验证。 ?
在aspx中
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="InvalidName" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
如果要在消息框或摘要中显示所有验证,则可以使用验证摘要控件
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True" />
答案 2 :(得分:0)
即使使用Scriptmanager
它也没有成功... o,我的解决方案是......我只是稍微更改了验证方法,效果很好......如下所示
private bool validation()
{
if (txtFName.Text == string.Empty) { Alert("Invalid Name"); return false; }
if (txtLName.Text == string.Empty) { Alert("Invalid Name"); return false; }
}