2011-04-18 9 views
2

私は、このマークアップコードを持っている:RequiredFieldValidator + Button =ポストバック!

<div id="rowIndirizzo" class="form"> 
    <label> 
     Indirizzo:</label> 
    <asp:DropDownList ID="ddlToponimo" CssClass="indirizzo" runat="server" DataTextField="Toponimo" 
     DataValueField="Toponimo"> 
    </asp:DropDownList> 
    <asp:TextBox ID="txtStrada" CssClass="textinputStrada" runat="server"></asp:TextBox> 
    <asp:TextBox ID="txtNumCivico" CssClass="textinputCivico" runat="server"></asp:TextBox> 
</div> 
<div id="divCap" class="form"> 
    <label> 
     CAP:</label> 
    <asp:TextBox ID="txtCAP" CssClass="textinputCAP" runat="server"></asp:TextBox> 
</div> 
<asp:RequiredFieldValidator ID="rfvToponimo" CssClass="errore2" runat="server" ControlToValidate="ddlToponimo" 
    ErrorMessage="Il campo toponimo dell'indirizzo è obbligatorio." Display="Dynamic" 
    ValidationGroup="Step4_StruttPrivata1Step" Style="color: Red; display: block !important;"></asp:RequiredFieldValidator> 
<asp:RequiredFieldValidator ID="rfvStrada" CssClass="errore2" runat="server" ControlToValidate="txtStrada" 
    ErrorMessage="Il campo strada dell'indirizzo è obbligatorio." Display="Dynamic" 
    ValidationGroup="Step4_StruttPrivata1Step" Style="color: Red; display: block !important;"></asp:RequiredFieldValidator> 
<asp:RequiredFieldValidator ID="rfvNumCivico" CssClass="errore2" runat="server" ControlToValidate="txtNumCivico" 
    ErrorMessage="Il campo numero civico dell'indirizzo è obbligatorio." Display="Dynamic" 
    ValidationGroup="Step4_StruttPrivata1Step" Style="color: Red; display: block !important;"></asp:RequiredFieldValidator> 
<asp:RequiredFieldValidator ID="rfvCAP" CssClass="errore2" runat="server" ControlToValidate="txtCAP" 
    ErrorMessage="Il campo CAP è obbligatorio." Display="Dynamic" 
    ValidationGroup="Step4_StruttPrivata1Step" Style="color: Red; 
    display: block !important;"></asp:RequiredFieldValidator> 
<asp:RegularExpressionValidator ID="revCAP" runat="server" ControlToValidate="txtCAP" 
    ValidationExpression="^([0-9]{5})$" ErrorMessage="Il formato del CAP è errato (Es.)" 
    Display="Dynamic" ValidationGroup="Step4_StruttPrivata1Step" Style="color: Red; 
    display: block !important;" /> 
<asp:Button ID="btnSearchIndirizzo" OnClientClick="return false;" class="buttonnext" runat="server" Text="Inserisci" 
    ValidationGroup="Step4_StruttPrivata1Step"></asp:Button> 

を私は、ボタンのクリックに検証するためにいくつかのコントロールを持っている、しかし、私は(私がいけないの火災RFVので、入力ボタンを使用することはできません)ポストバックを望んでいません。私はonclientclickイベントで試しました...しかし何もありません。

答えて

5

更新:ページを無効にすると、明示的にクライアント側の検証を行い、ポストバックを停止するためにdummyFunctionコードを変更しました。

あなたはまた、

OnClientClick = "return dummyFunction();" 

を試してみてください。そして、あなたができるよう

function dummyFunction(){ 

//this command will explicitly fire the validation 
    Page_ClientValidate(); 
    return Page_IsValid; //Page_IsValid is set to true or false depending on whether a page is valid or not after client validation 
    } 
+0

多分私はEUREKAが遅すぎると言いました!クリックしても送信ボタンが表示されないと、検証グループは起動しません!ちょうど私がテキストボックスを変更する場合.... –

+0

ダミー関数コードを変更して、自分自身で検証を呼び出す方法を示し、無効な場合にページをポストバックすることができます。 – Nikhil

+0

はい! (Page_ClientValidate( 'Step4_StruttPrivata1Step')){...} –

0

としてJS関数dummyFunctionを持っている場合がありますあなたのボタンのマークアップ

UseSubmitBehavior = false 

上の次の属性を試してみてくださいonClientClickをさらに進める前にページを検証させてください。つまり、OnClientClickからトリガーできます。 hatは必要なフィールドバリデーターを実行します。

ちょうどあなたのクライアントのクリック機能でこれを追加します。

機能myOnClientClick()

{

を(Page_ClientValidate())//これはバリ

{

をトリガする場合

//次にクライアントの作業を行う

}

}

関連する問題