2012-03-30 2 views
1

Ich habe eine Frage hier. Wie Sie eine Validierung deaktivieren, wenn das Kontrollkästchen aktiviert ist. Ich habe versucht ValidatorEnable (Kontrolle, falsch), kann es nicht für mich arbeiten.Validierung Nachricht von Javascript

<dxe:BaseCheckBox runat ="server" ID="chkIsChecked" ClientInstanceName ="chkIsChecked"> 
     <ClientSideEvents CheckedChanged="OnSelectionChanged"/> 
</dxe:BaseCheckBox> 


<dxe:BaseComboBox runat ="server" ID="cboLabour" ClientInstanceName ="cboLabour" ValueType="System.String" ClientEnabled="false" > 
    <ValidationSettings SetFocusOnError="True" ErrorText="This field is required to fill." 
     ErrorDisplayMode="ImageWithTooltip" ValidationGroup="RejectReason" 
     CausesValidation="false"> 
      <RequiredField IsRequired="True" ErrorText="This field is required to fill."> 
      </RequiredField> 
    </ValidationSettings> 
</dxe:BaseComboBox> 

Mein Javascript:

function OnSelectionChanged(s,e) 
{ 
    if(chkIsChecked.GetValue()) 
    { 
     cboLabour.SetEnabled(true); 
    } 
    else 
    {  
     cboLabour.SetEnabled(false); 
     cboLabour.SetValue(''); 
    } 
} 

Vielen Dank für Tipps.

+1

Da Sie nicht integrierte Steuerelemente verwenden Sie aus, welche Bibliothek diese angeben sollen. Die Antwort hängt davon ab. –

+0

Devexpress 8.1 u bedeutet? –

Antwort

0

Um dies zu tun, müssen Sie benutzerdefinierte Validierung verwenden. Etwas wie folgt aus:

function OnLabouryValidation(s, e) { 
    if (chkIsChecked.GetValue()) 
     return; 

    var v = e.value; 
    if(e.value) 
      return; 

    e.isValid = false; 
    e.errorText = "Required."; 
} 

Es gibt „Dokumentation“ auf benutzerdefinierte Validierung hier, aber in meiner schnellen Lesen, es ist nicht explizit klar, wie dies verkabeln.

http://documentation.devexpress.com/#AspNet/CustomDocument11135

+0

danke, darauf schauen. –

0

Wie ich aus Ihrer Frage entdeckt Sie suchen für die Gruppenvalidierung:

Erster Satz der ValidateOnLeave = „False“ in ValidationSettings und Geben Sie den Validierungsgruppennamen auf Ihre Kontrollen und verwenden Sie dann die Client-Seite ASPxClientEdit.ValidateGroup('MyGroup'); Methode, um Ihre Gruppe von Kontrollen zu validieren, indem Sie einige Anpassungen nach Ihren Anforderungen.

Markup:

<dxe:BaseCheckBox runat ="server" ID="chkIsChecked" ClientInstanceName ="chkIsChecked"> 
      <ClientSideEvents CheckedChanged="OnSelectionChanged"/> 
    </dxe:BaseCheckBox> 


    <dxe:BaseComboBox runat ="server" ID="cboLabour" ClientInstanceName ="cboLabour" ValueType="System.String" ClientEnabled="false" > 
     <ValidationSettings SetFocusOnError="True" ErrorText="This field is required to fill." 
      ErrorDisplayMode="ImageWithTooltip" ValidationGroup="RejectReason" 
      ValidateOnLeave="False"> 
       <RequiredField IsRequired="True" ErrorText="This field is required to fill."> 
       </RequiredField> 
     </ValidationSettings> 
    </dxe:BaseComboBox> 


<dx:ASPxButton ID="btn" runat="server" Text="Validate" 
AutoPostBack="False" CausesValidation="False"> 

     <ClientSideEvents Click="function(s, e) { 

    if (chkIsChecked.GetValue()) // if checked then validate the group 
    { 
       ASPxClientEdit.ValidateGroup('RejectReason'); 
    } 
     }" /> 
    </dx:ASPxButton> 

diese Dokumentation folgen und implementieren, was Sie zu tun versuchen.
How to: Validate a Group of Editors
How to: Validate All Editors on a Page
How to: Implement a Custom Validation
ASPxClientEdit.Validation Event

+0

Ich habe Button angeklickt Ereignis in der BTN, die OnClick ist = "btnSubmit_Click", nachdem ich auf die Schaltfläche geklickt, validiert die Seite die Combobox erfolgreich, aber es wird das Ereignis btnSubmit_click ausgelöst. –

+0

Haben Sie AutoPostBack = "False" verwendet, wird das Postback gestoppt –