如何在文本框中要求文本?

时间:2014-03-10 15:14:44

标签: c# asp.net

如何在文本框中要求文字?这就是我到目前为止所做的。

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();
}

当我运行程序并尝试执行它时,无论是否将文本输入文本框,都会弹出错误。我只希望错误显示TextBox中是否有任何内容。我也试过用,

if (strName == "")

也是。但没有任何改变。

5 个答案:

答案 0 :(得分:3)

在我看来,使用ScriptManager来做这种客户端验证有点压倒性。一个简单的RequireFieldValidator将执行您要执行的操作。

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.requiredfieldvalidator(v=vs.110).aspx

答案 1 :(得分:1)

将您的代码更改为:

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 .

答案 2 :(得分:0)

我自己得到了答案。这是我想要的正确答案。

if (txtName.Text == "")
        {
            string script = "alert(\"Name Field Is Required!\");";
            ScriptManager.RegisterStartupScript(this, GetType(),
                                  "ServerControlScript", script, true);

            txtName.Focus();
        }

这样就可以了。如果文本框为空,则会显示错误消息。否则,如果TextBox中有文本,则不会发生任何事情。这就是我想要的。

答案 3 :(得分:0)

if (txtName.TextLength==0)
{
//code
}

答案 4 :(得分:0)

正如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
}

如果页面上的所有验证器都通过验证,则Page.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()中显示该消息消息框。