-1

プログレスバーと必須フィールドバリデーターを使用しています。しかし、送信ボタンをクリックすると。プログレスバーとバリデータ メッセージの両方が表示されます。私のコードは

<script type="text/javascript">

    function ShowDiv() {
        setTimeout('document.getElementById("PB").style.display = "inline";', 500); 
    }

</script>
...
<asp:Button ID="btnSubmit" runat="server" Text="Submit" ValidationGroup="ValGrpSave" onclick="btnSubmit_Click" OnClientClick="ShowDiv()" />
...
<asp:TextBox ID="txtEmail1" Width="350px" runat="server" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ValidationGroup="ValGrpSave" ErrorMessage="<b>Field Missing</b><br/>Issue no is Required" Display="None" ControlToValidate="txtEmail1" />
<cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" TargetControlID="RequiredFieldValidator2" />
4

1 に答える 1

0

問題は、ボタンがフォームの送信を開始するのを妨げておらず、フォームが有効でないため、バリデーターがメッセージを表示することです。

ボタンが進行状況バーのみを表示することになっている場合は、スクリプト関数をこれに変更してみてください (サーバー側の機能がないため、代わりに非サーバー ボタンに変更することは別の議論ですが、それはあなたに任せましょう):

function ShowDiv(evt) {

    // display progress bar after half a second
    setTimeout(function() {
         document.getElementById("PB").style.display = "inline";
    }, 500);

    // prevent button click event propagation thus prevent form submission
    evt.preventDefault();
    return false;
}

非推奨の文字列ステートメントsetTimeoutの代わりに関数を提供するようにも変更しました。

また、ボタンに変更を加えます

<asp:Button ID="btnSubmit" runat="server" Text="Submit" ValidationGroup="ValGrpSave" onclick="btnSubmit_Click" OnClientClick="return ShowDiv();" />
于 2012-07-10T12:56:41.297 に答える