none
Validar ciertos formularios cuando hago clic en un boton RRS feed

  • Pregunta

  • Hola a todos

    Tengo un problema al estar realizando una pagina en ASP.NET con boostrap, html5 y css

    Tengo 3 "formularios" en mi pagina en donde se llenan campos, se adjunta un archivo y al dar clic al boton "postularse" se envia por correo.

    La cosa es que tengo el atributo "required" en los campos para validarlos, pero al dar clic en un boton, me pide validar todos los campos.

    ¿Hay alguna forma de poder decirle al boton que solo valide los campos de cada seccion?

    <div class="wow fadeInUp col-md-4 col-sm-4" data-wow-delay="0.4s">
                        <div class="pricing-plan" >
                             <div class="pricing-month">
                                  <h2>INSPECTOR DE CALIDAD</h2>
                             </div>
                             <p class="bt">✓ 40 Users</p>
                             <p class="bt">✓ 10GB per user</p>
                             <p class="bt">✓ Unlimited Support</p>
                             <p class="bt">✓ 1 Year License</p>
                                <div class="pricing-month">
                                    <p class="bts">Complete los siguientes campos y adjunte su CV en formato .doc, .docx o .pdf</p>
                                    <asp:TextBox runat="server" ID="txtNombre1" CssClass= "form-control" required="required" placeholder = "Nombre completo" ></asp:TextBox>
                                    <br/>
                                    <asp:TextBox runat="server" ID="txtEmail1" CssClass= "form-control" required="required" placeholder = "E-mail para contacto" CausesValidation="True" TextMode="Email" ></asp:TextBox>
                                    <hr/>
                                    <asp:FileUpload ID="FileUpload1" runat="server" CssClass="fup"/>
                                    <hr/>
                                <asp:Button ID="btnPost1" runat="server" Text="Postularse" CssClass="btn btn-default section-btn" OnClick="btnPost1_Click"/>
                                 </div>
                        </div>
                   </div>
    
                   <div class="wow fadeInUp col-md-4 col-sm-4" data-wow-delay="0.6s">
                        <div class="pricing-plan">
                             <div class="pricing-month">
                                  <h2>TECNICO EN ESD</h2>
                             </div>
                             <p class="bt">✓ 100 Users</p>
                             <p class="bt">✓ 20GB per user</p>
                             <p class="bt">✓ Unlimited Support</p>
                             <p class="bt">✓ 2 Years License</p>
                             <div class="pricing-month">
                                 <p class="bts">Complete los siguientes campos y adjunte su CV en formato .doc, .docx o .pdf</p>
                                 <asp:TextBox runat="server" ID="txtNombre2" CssClass= "form-control" required="required" placeholder = "Nombre completo" ></asp:TextBox>
                                <br/>
                                <asp:TextBox runat="server" ID="txtEmail2" CssClass= "form-control" required="required" placeholder = "E-mail para contacto" CausesValidation="True" TextMode="Email" ></asp:TextBox>
                                <hr/>
                                <asp:FileUpload ID="FileUpload2" runat="server" CssClass="fup"/>
                                <hr/>
                             </div>
                            <asp:Button ID="btnPost2" runat="server" Text="Postularse" CssClass="btn btn-default section-btn" OnClick="btnPost2_Click"/>
                        </div>
                   </div>
    
                   <div class="wow fadeInUp col-md-4 col-sm-4" data-wow-delay="0.8s">
                        <div class="pricing-plan">
                             <div class="pricing-month">
                                  <h2>SUPERVISOR DE CALIDAD</h2>
                             </div>
                             <p class="bt">✓ 200 Users</p>
                             <p class="bt">✓ 30GB per user</p>
                             <p class="bt">✓ Unlimted Support</p>
                             <p class="bt">✓ 3 Years License</p>
                             <div class="pricing-month">
                                 <p class="bts">Complete los siguientes campos y adjunte su CV en formato .doc, .docx o .pdf</p>
                                 <asp:TextBox runat="server" ID="txtNombre3" CssClass= "form-control" required="required" placeholder = "Nombre completo" ></asp:TextBox>
                                <br/>
                                <asp:TextBox runat="server" ID="txtEmail3" CssClass= "form-control" required="required" placeholder = "E-mail para contacto" CausesValidation="True" TextMode="Email" ></asp:TextBox>
                                <hr/>
                                <asp:FileUpload ID="FileUpload3" runat="server" CssClass="fup"/>
                                <hr/>
                             </div>
                            <asp:Button ID="btnPost3" runat="server" Text="Postularse" CssClass="btn btn-default section-btn" OnClick="btnPost3_Click"/>
                        </div>
                   </div>
    

    Dejo una imagen de como se aprecia graficamente, juntar el .png con la direccion para poder ver la imagen

    https://i.ibb.co/9yHQ2B2/2019-02-19-13-10-43. png

    Muchas gracias, saludos.

    martes, 19 de febrero de 2019 19:17

Respuestas

  • Has probado a usar un requirefieldvalidator?

    Ejemplo 

        <asp:requiredfieldvalidator id="RequiredFieldValidator3"
          controltovalidate="CityTextBox"
          validationgroup="LocationInfoGroup"
          errormessage="Enter a city name."
          runat="Server">
        </asp:requiredfieldvalidator>


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta DavidHdz97 miércoles, 20 de febrero de 2019 4:34
    martes, 19 de febrero de 2019 22:38
    Moderador

Todas las respuestas

  • Hola, para cada elemento de cada sección deberías establecer la propiedad ValidationGroup. Luego ese misma propiedad se la estableces al Button correspondiente.

    TextBox.ValidationGroup Property

    Button.ValidationGroup Property


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    martes, 19 de febrero de 2019 20:15
    Moderador
  • Gracias por la respuesta.

    Lo he intentado pero me sigue pidiendo que valide todos los campos.

    <div class="wow fadeInUp col-md-4 col-sm-4" data-wow-delay="0.4s">
                        <div class="pricing-plan" >
                             <div class="pricing-month">
                                  <h2>INSPECTOR DE CALIDAD</h2>
                             </div>
                             <p class="bt">✓ 40 Users</p>
                             <p class="bt">✓ 10GB per user</p>
                             <p class="bt">✓ Unlimited Support</p>
                             <p class="bt">✓ 1 Year License</p>
                                <div class="pricing-month">
                                    <p class="bts">Complete los siguientes campos y adjunte su CV en formato .doc, .docx o .pdf</p>
                                    <asp:TextBox runat="server" ID="txtNombre1" CssClass= "form-control" required="required" placeholder = "Nombre completo" ValidationGroup="VG1" ></asp:TextBox>
                                    <br/>
                                    <asp:TextBox runat="server" ID="txtEmail1" CssClass= "form-control" required="required" placeholder = "E-mail para contacto" CausesValidation="True" TextMode="Email" ValidationGroup="VG1" ></asp:TextBox>
                                    <hr/>
                                    <asp:FileUpload ID="FileUpload1" runat="server" CssClass="fup"/>
                                    <hr/>
                                <asp:Button ID="btnPost1" runat="server" Text="Postularse" CssClass="btn btn-default section-btn" OnClick="btnPost1_Click" causesvalidation="true"
          validationgroup="VG1"/>
                                 </div>
                        </div>
                   </div>
    
                   <div class="wow fadeInUp col-md-4 col-sm-4" data-wow-delay="0.6s">
                        <div class="pricing-plan">
                             <div class="pricing-month">
                                  <h2>TECNICO EN ESD</h2>
                             </div>
                             <p class="bt">✓ 100 Users</p>
                             <p class="bt">✓ 20GB per user</p>
                             <p class="bt">✓ Unlimited Support</p>
                             <p class="bt">✓ 2 Years License</p>
                             <div class="pricing-month">
                                 <p class="bts">Complete los siguientes campos y adjunte su CV en formato .doc, .docx o .pdf</p>
                                 <asp:TextBox runat="server" ID="txtNombre2" CssClass= "form-control" required="required" placeholder = "Nombre completo" ValidationGroup="vg2" ></asp:TextBox>
                                <br/>
                                <asp:TextBox runat="server" ID="txtEmail2" CssClass= "form-control" required="required" placeholder = "E-mail para contacto" CausesValidation="True" TextMode="Email" ValidationGroup="vg2" ></asp:TextBox>
                                <hr/>
                                <asp:FileUpload ID="FileUpload2" runat="server" CssClass="fup"/>
                                <hr/>
                             </div>
                            <asp:Button ID="btnPost2" runat="server" Text="Postularse" CssClass="btn btn-default section-btn" OnClick="btnPost2_Click" causesvalidation="true"
          validationgroup="vg2"/>
                        </div>
                   </div>
    
                   <div class="wow fadeInUp col-md-4 col-sm-4" data-wow-delay="0.8s">
                        <div class="pricing-plan">
                             <div class="pricing-month">
                                  <h2>SUPERVISOR DE CALIDAD</h2>
                             </div>
                             <p class="bt">✓ 200 Users</p>
                             <p class="bt">✓ 30GB per user</p>
                             <p class="bt">✓ Unlimted Support</p>
                             <p class="bt">✓ 3 Years License</p>
                             <div class="pricing-month">
                                 <p class="bts">Complete los siguientes campos y adjunte su CV en formato .doc, .docx o .pdf</p>
                                 <asp:TextBox runat="server" ID="txtNombre3" CssClass= "form-control" required="required" placeholder = "Nombre completo" ValidationGroup="vg3" ></asp:TextBox>
                                <br/>
                                <asp:TextBox runat="server" ID="txtEmail3" CssClass= "form-control" required="required" placeholder = "E-mail para contacto" CausesValidation="True" TextMode="Email" ValidationGroup="vg3" ></asp:TextBox>
                                <hr/>
                                <asp:FileUpload ID="FileUpload3" runat="server" CssClass="fup"/>
                                <hr/>
                             </div>
                            <asp:Button ID="btnPost3" runat="server" Text="Postularse" CssClass="btn btn-default section-btn" OnClick="btnPost3_Click" causesvalidation="true"
          validationgroup="vg3"/>
                        </div>
                   </div>

    Quisiera conservar los atributos de "required" y que al presionar btnPost1, solo me valide los primeros 2 campos, y los demas campos no los tome en cuenta, intente hacer una validacion de lado de servidor pero no me funciono.

    Saludos.

    martes, 19 de febrero de 2019 20:38
  • Has probado a usar un requirefieldvalidator?

    Ejemplo 

        <asp:requiredfieldvalidator id="RequiredFieldValidator3"
          controltovalidate="CityTextBox"
          validationgroup="LocationInfoGroup"
          errormessage="Enter a city name."
          runat="Server">
        </asp:requiredfieldvalidator>


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta DavidHdz97 miércoles, 20 de febrero de 2019 4:34
    martes, 19 de febrero de 2019 22:38
    Moderador
  • Lo realice como mencionas y si, efectivamente ya puedo validar los campos a mi gusto.

                   <div class="wow fadeInUp col-md-4 col-sm-4" data-wow-delay="0.4s">
                        <div class="pricing-plan" >
                             <div class="pricing-month">
                                  <h2>INSPECTOR DE CALIDAD</h2>
                             </div>
                             <p class="bt">✓ 40 Users</p>
                             <p class="bt">✓ 10GB per user</p>
                             <p class="bt">✓ Unlimited Support</p>
                             <p class="bt">✓ 1 Year License</p>
                                <div class="pricing-month" >
                                    <p class="bts">Complete los siguientes campos y adjunte su CV en formato .doc, .docx o .pdf</p>
                                    <asp:TextBox runat="server" ID="txtNombre1" CssClass= "form-control" placeholder = "Nombre completo"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="rfNombre1" runat="server" ErrorMessage="Debe capturar los campos solicitados" ValidationGroup="VG1" ControlToValidate="txtNombre1"></asp:RequiredFieldValidator>
                                    <br/>
                                    <asp:TextBox runat="server" ID="txtEmail1" CssClass= "form-control" placeholder = "E-mail para contacto" CausesValidation="True" TextMode="Email"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="rfEmail1" runat="server" ErrorMessage="Debe capturar los campos solicitados" ControlToValidate="txtEmail1" ValidationGroup="VG1"></asp:RequiredFieldValidator>
                                    <hr/>
                                    <asp:FileUpload ID="FileUpload1" runat="server" CssClass="fup"/>
                                    <hr/>
                                <asp:Button ID="btnPost1" runat="server" Text="Postularse" CssClass="btn btn-default section-btn" OnClick="btnPost1_Click" causesvalidation="true" ValidationGroup="VG1"/>
                                 </div>
                        </div>
                   </div>
    
                   <div class="wow fadeInUp col-md-4 col-sm-4" data-wow-delay="0.6s">
                        <div class="pricing-plan">
                             <div class="pricing-month">
                                  <h2>TECNICO EN ESD</h2>
                             </div>
                             <p class="bt">✓ 100 Users</p>
                             <p class="bt">✓ 20GB per user</p>
                             <p class="bt">✓ Unlimited Support</p>
                             <p class="bt">✓ 2 Years License</p>
                             <div class="pricing-month">
                                 <p class="bts">Complete los siguientes campos y adjunte su CV en formato .doc, .docx o .pdf</p>
                                 <asp:TextBox runat="server" ID="txtNombre2" CssClass= "form-control" placeholder = "Nombre completo"></asp:TextBox>
                                 <asp:RequiredFieldValidator ID="rfNombre2" runat="server" ErrorMessage="Debe capturar los campos solicitados" ValidationGroup="VG2" ControlToValidate="txtNombre2"></asp:RequiredFieldValidator>
                                <br/>
                                <asp:TextBox runat="server" ID="txtEmail2" CssClass= "form-control" placeholder = "E-mail para contacto" CausesValidation="True" TextMode="Email"></asp:TextBox>
                                 <asp:RequiredFieldValidator ID="rfEmail2" runat="server" ErrorMessage="Debe capturar los campos solicitados" ControlToValidate="txtEmail2" ValidationGroup="VG2"></asp:RequiredFieldValidator>
                                <hr/>
                                <asp:FileUpload ID="FileUpload2" runat="server" CssClass="fup"/>
                                <hr/>
                             </div>
                            <asp:Button ID="btnPost2" runat="server" Text="Postularse" CssClass="btn btn-default section-btn" OnClick="btnPost2_Click" causesvalidation="true" ValidationGroup="VG2"/>
                        </div>
                   </div>
    
                   <div class="wow fadeInUp col-md-4 col-sm-4" data-wow-delay="0.8s">
                        <div class="pricing-plan">
                             <div class="pricing-month">
                                  <h2>SUPERVISOR DE CALIDAD</h2>
                             </div>
                             <p class="bt">✓ 200 Users</p>
                             <p class="bt">✓ 30GB per user</p>
                             <p class="bt">✓ Unlimted Support</p>
                             <p class="bt">✓ 3 Years License</p>
                             <div class="pricing-month">
                                 <p class="bts">Complete los siguientes campos y adjunte su CV en formato .doc, .docx o .pdf</p>
                                 <asp:TextBox runat="server" ID="txtNombre3" CssClass= "form-control" placeholder = "Nombre completo"></asp:TextBox>
                                 <asp:RequiredFieldValidator ID="rfNombre3" runat="server" ErrorMessage="Debe capturar los campos solicitados" ValidationGroup ="VG3" ControlToValidate="txtNombre3"></asp:RequiredFieldValidator>
                                <br/>
                                <asp:TextBox runat="server" ID="txtEmail3" CssClass= "form-control" placeholder = "E-mail para contacto" CausesValidation="True" TextMode="Email"></asp:TextBox>
                                 <asp:RequiredFieldValidator ID="rfEmail3" runat="server" ErrorMessage="Debe capturar los campos solicitados" ValidationGroup ="VG3" ControlToValidate="txtEmail3"></asp:RequiredFieldValidator>
                                <hr/>
                                <asp:FileUpload ID="FileUpload3" runat="server" CssClass="fup"/>
                                <hr/>
                             </div>
                            <asp:Button ID="btnPost3" runat="server" Text="Postularse" CssClass="btn btn-default section-btn" OnClick="btnPost3_Click" causesvalidation="true" validationgroup="VG3"/>
                        </div>
                   </div>

    Gracias.

    miércoles, 20 de febrero de 2019 4:34