0

サーバー側の検証を行っていますが、正常に機能していないようです。以下はサンプルコードです

     //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があります。私はそれが問題になる可能性があります

4

3 に答える 3

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" />
于 2012-01-25T01:25:06.153 に答える
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

于 2012-01-25T01:14:22.517 に答える
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; } 
} 
于 2012-02-02T16:31:38.523 に答える