如何要求文本框中的文本

本文关键字:文本 | 更新日期: 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()消息框的消息。