RequiredFieldValidator + Button = Обратная передача! - PullRequest
2 голосов
/ 18 апреля 2011

У меня есть этот код разметки:

<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. 01234)"
    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 ... но ничего.

Ответы [ 2 ]

5 голосов
/ 18 апреля 2011

Обновление: я изменил код функции 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 голосов
/ 11 апреля 2012

вы можете сделать так, чтобы страница проверялась, прежде чем идти дальше в onClientClick. Я имею в виду, что вы можете вызвать ее из OnClientClick, которая выполнит обязательное поле проверки.

Просто добавьте это в функцию клика клиента:

функция myOnClientClick ()

{

if (Page_ClientValidate ()) // это вызовет валидатор

{

// Затем выполняем клиентские вещи

}

}

...