2012-04-02 10 views
5

Abbiamo un modulo con un numero di campi obbligatori. Quando sono su un campo obbligatorio e premo il tasto invio, il modulo non viene inviato. Tuttavia, se sono su un campo che non è richiesto, premendo il tasto Invio invio il modulo. Ciò è problematico perché l'invio del modulo è ciò che attiva la convalida per visualizzare il riepilogo di convalida in alto. Se sono su un campo obbligatorio, non attiva questa convalida. Sembra che accenda la propria convalida e mostri il mio testo di errore (che è solo un asterisco) ma le persone non lo vedono.asp.net campo obbligatorio validatore disabilita invio modulo invio modulo

Qualcuno sa perché un campo non obbligatorio immettere la chiave invierà il modulo ma un campo obbligatorio immettere la chiave non lo sarebbe?

risposta

0

Da quello che hai descritto, sembra che tu stia utilizzando la convalida sul lato server. Prova a impostare EnableClientScript su false sul validatore, che disabiliterà la convalida sul lato client.

Se questo non è sufficiente, è possibile ignorare la convalida quando il pulsante di invio viene cliccato in questo modo:

<script type="text/javascript"> 
    validateForm = function(){ 
     var isValid = Page_ClientValidate(""); 
     if (isValid){ 
      //some custom logic if needed 
     } 
     return true; //do the postback even if validation fails? 
        //otherwise return isValid 
    } 
</script> 
<asp:Button ID="Button1" runat="server" OnClientClick="return validateForm();" ... /> 
+0

sto usando sia server che client convalida lato. Non capisco perché non vorrei usare la validazione lato client? Quando imposto la convalida del lato client del validatore su false, non ho campi obbligatori che inviano il modulo. Neanche questa è l'idea. Mi aspetto che qualsiasi campo tranne un campo textarea invii il modulo quando si preme Invio indipendentemente dal fatto che sia richiesto o meno. –

+0

Ecco perché ho fornito un esempio che consente di manipolare il processo di convalida in base alle proprie esigenze. –

+0

Quindi stai dicendo che invece di avere tutti i campi inviare il modulo, fallo in modo che nessuno lo invii e l'unico modo per inviarlo è fare clic sul pulsante? –