2011-04-18 48 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代碼以顯式激發客戶端驗證,並在頁面無效時停止回發。

嘗試在您的按鈕標記以下屬性

UseSubmitBehavior = false 

你可能也想嘗試

OnClientClick = "return dummyFunction();" 

,然後有一個JS功能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太晚了!點擊時沒有提交按鈕,驗證組不會啓動!只是如果我在文本框中更改.... – 2011-04-18 10:49:37

+0

我修改了dummyFunction代碼,以演示如何自己調用驗證,並在停止頁面無效時回發。 – Nikhil 2011-04-18 11:21:49

+0

是的!如果(Page_ClientValidate('Step4_StruttPrivata1Step')){...} – 2011-04-18 11:52:07

0

可以導致頁面在進一步onClientClick之前進行驗證我的意思是你可以從OnClientClick t觸發它帽子將執行必需的字段驗證程序。

就在您的客戶端點擊功能補充一點:

功能myOnClientClick()

{

如果(Page_ClientValidate())//這將觸發驗證

{

//然後做客戶的東西

}

}