Tengo un control de usuario donde tengo dos paneles, uno a la izquierda y otro a la derecha, a la izquierda hay información de facturación del cliente y a la derecha información de envío, cada campo en la información de envío tiene unvalidador de campo requerido, estos paneles están envueltos en un panel de actualización. El estado predeterminado es que ambos paneles están visibles, debajo de los paneles hay una casilla de verificación que dice "Envío igual que facturación", cuando lo verifica, el panel de la derecha "Panel de envío" desaparece y luego continúa.La validación sigue apareciendo aunque está deshabilitada
Edición: digamos que me quite el texto en el nombre de expedición y yo no haga clic en cualquier otro lugar, a continuación, voy a la casilla de verificación "Igual que la facturación" por un momento que muestra la validación en rojo y luego se dissapears. He intentado crear una función que desactiva el validador es decir
RequireFieldValidator1.Enabled = false;
Funciona bien en los términos que no muestra la validación antes desaparece el panel de envío, pero digamos que cambio de opinión y haga clic de nuevo para mostrarlo . Ahora cuando borro el nombre en el panel de envío y hago clic en otro lugar, no me deja ir a ningún lado pero no muestra el texto de validación.
Así que hice esta lógica:
if (ckSameBilling.checked)
{
RequiredFieldValidator.Enabled = false;
}
else
{
RequiredFieldValidator.Enabled = true;
}
Pero ahora que volví al mismo comportamiento como si demostrada anteriormente, borrar el nombre de envío y haga clic checbox .. puedo ver la validación rojo momentáneamente.
código relacionado
//All this is wrapped in an update panel
<asp:Panel ID="pnl" runat="server"><div>
asp:TextBox ID="txtShippingFirstName" runat="server" Width="130px" Columns="30"
MaxLength="100" asp:TextBox><div>
<asp:RequiredFieldValidator ID="Requiredfieldvalidator1" ErrorMessage="Name Required"
ControlToValidate="txt"
runat="server" Display="Dynamic" CssClass="Error">
</asp:RequiredFieldValidator>
</asp:Panel>
<div style="margin-left: 145px;">
<asp:CheckBox ID="Billing" runat="server" Font-Bold="True"
Text"Same as Billing" OnCheckedChanged="Billing_CheckedChanged"
AutoPostBack="True" />
</div>
Codebehind:
protected void Billing_CheckedChanged(object sender, EventArgs e)
{
if (Billing.Checked)
{
//Disable the shipping fields validations
DisableEnable(true);
pnl.Visible = false;
}
else
{
DisableEnable(false);
pnl.Visible = true;
}
}
private void DisableEnable(bool enable)
{
if (enableFields)
{
Requiredfieldvalidator1.Enabled = false;
//a bunch of required validations below...
}
else
{
Requiredfieldvalidator1.Enabled = true;
//a bunch of required validations below..
}
}
usando el enfoque jquery, muchas gracias ... No soy un gurú pero ¿cómo puedo hacerlo? comprobar el estado de la casilla de verificación en jquery? (ya sea verificado o no)? Gracias otra vez – user710502