如何在文本框中要求文字?这就是我到目前为止所做的。
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 == "")
也是。但没有任何改变。
答案 0 :(得分:3)
在我看来,使用ScriptManager来做这种客户端验证有点压倒性。一个简单的RequireFieldValidator将执行您要执行的操作。
答案 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()
中显示该消息消息框。