如何要求文本框中的文本
本文关键字:文本 | 更新日期: 2023-09-27 17:49:24
如何在文本框中要求文本?这是我目前掌握的信息。
String strName = txtName.Text;
String strEmail = txtEmail.Text;
Boolean blnErrors = false;
if (strName == null)
{
}
else
{
string script = "alert('"Name Field Is Required!'");";
ScriptManager.RegisterStartupScript(this, GetType(), "ServerControlScript", script, true);
txtName.Focus();
}
当我运行程序并尝试执行它时,无论我是否在文本框中输入了文本,都会弹出错误。我只希望错误显示,如果有什么在文本框。我也试过使用
if (strName == "")
。
在我看来,使用ScriptManager进行这种客户端验证有点令人难以接受。一个简单的RequireFieldValidator就可以做你想做的事情。
https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.requiredfieldvalidator (v = vs.110) . aspx
修改代码:
String strName = txtName.Text.Trim(); //add trim here
String strEmail = txtEmail.Text;
Boolean blnErrors = false;
if (string.IsNullOrWhiteSpace(sstrName)) //this function checks for both null or empty string.
{
string script = "alert('"Name Field Is Required!'");";
ScriptManager.RegisterStartupScript(this, GetType(), "ServerControlScript", script, true);
txtName.Focus();
return;//return from the function as there is an error.
}
//continue as usual .
我自己得到了答案。这是我想要的正确答案。
if (txtName.Text == "")
{
string script = "alert('"Name Field Is Required!'");";
ScriptManager.RegisterStartupScript(this, GetType(),
"ServerControlScript", script, true);
txtName.Focus();
}
如果文本框为空,则会显示错误消息。否则,如果文本框中有文本,则不会发生任何事情。这就是我想要的
if (txtName.TextLength==0)
{
//code
}
正如user3402321所说,使用RequireFieldValidator是正确的方法。
HTML:<asp:TextBox runat="server" ID="txtEmail" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="txtEmail" >Please enter an email address</asp:RequiredFieldValidator>
c#: if(Page.IsValid)
{
// Process submisison
}
如果该页上的所有验证器都通过了验证页。IsValid将为true,如果一个验证器失败,IsValid将为false。对于电子邮件地址,您可能需要使用RegEx验证器来检查电子邮件格式是否正确:
<asp:RegularExpressionValidator runat="server" ControlToValidate="txtEmail" ValidationExpression="<your favourite email regex pattern>" Text="Email not correct format" />
显然将<your favourite email regex pattern>
更改为您选择的电子邮件正则表达式模式。
编辑进一步我已经说过,你可以用户一个<asp:ValidationSummary />
控件显示所有的验证错误在一个地方,如果你设置ShowMessageBox属性为true,它将显示在一个javascript alert()
消息框的消息。