es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Campo de texto de Material UI, formato de campos obligatorios.

Quiero cambiar el color del borde subrayado de los campos de texto que son obligatorios en un formulario (react-hooks-form).

Supongo que necesito crear un estilo para estos campos, pero aquí es donde me quedé atascado…

Este es mi código:

campo:
`
               <Controller
                  name = & quot; date & quot;
                  control = {control}
                  defaultValue = {props.operation === & # 39; edit & # 39;? props.values.date: null}
                  render = {({ campo: {onChange, value }, estado del campo: {error}}) => (
                    <TextField
                      id = & quot; date & quot;
                      tipo = & quot; date & quot;
                      etiqueta = & quot; fecha & quot;
                      value = {valor}
                      className = {classes.textField}
                      onChange = {(event) =&gt; {
                        onChange (event.target.value);
                        setValue (& # 39; week & amp; # 39 ;, obtenerSemana (event.target.value))
                      }}
                      error = {!! error}
                      helperText = {error? error.message: null}
                      InputLabelProps = {{
                        reducir: verdadero,
                      }}
                      /// agregado
                      InputProps = {{
                        className: classes.mandatory,
                      }}
                    / & amp; gt;
                  )}
                  reglas = {{ requerido: & amp; # 39; Date is required & amp; # 39; }}
                / & amp; gt;
`

estilos:
const useStyles = makeStyles ((tema: Tema) =>
  crearEstilos ({
    raíz: {
      ‘& amp; .MuiTextField-root & amp;’: {
        margen: tema.spacing (2),
        ancho: & # 39; 26ch & # 39 ;,
      },
    },
   /// agregado
    obligatorio: {
      borderBottom: & # 39; 1px sólido rgb (215 50 50/70%) & # 39;
    }
  }),
);

He intentado agregar el color del borde, pero no funciona.

La única solución que encontré hasta ahora es hacer que el campo esté en foco…

ACTUALIZACIÓN # 2: posible solución agregar estilo a TextField:

`
& lt;TextField
                          {... parametros }
                          error = {!! error}
                          helperText = {error? error.message: null}
                          etiqueta = & amp; quot; appel * & amp; quot;
                          className = {`obligatorio $ {clases.textField}`}
                          style = {{borderBottom: & # 39; 1px sólido rojo & # 39;}}
                        / & amp; gt;
`

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para cambiar el color del borde subrayado de los campos de texto que son obligatorios en un formulario (con react-hooks-form), puede crear un estilo para los campos obligatorios y agregarlo al componente TextField.

    Primero, necesita crear un estilo para los campos obligatorios. Puede hacer esto utilizando la función makeStyles de Material-UI. Aquí hay un ejemplo:

    const useStyles = makeStyles((theme) => ({
      mandatory: {
        borderBottom: '1px solid red' // reemplace red con el color deseado
      }
    }));
    

    Esto crea un estilo llamado “mandatory” con un borde subrayado rojo.

    A continuación, puede agregar este estilo al componente TextField agregando la clase “mandatory” a la propiedad className y estableciendo la propiedad style para incluir el color deseado del borde subrayado. Aquí hay un ejemplo:

    <textfield label="Nombre" name="nombre" inputref="{register({" required:="" true="" })}="" classname="{`${classes.mandatory}`}" style="{{" borderbottom:="" '1px="" solid="" red'="" }}=""></textfield>
    

    Tenga en cuenta que debe usar la función “register” de react-hook-form para registrar el campo como obligatorio y pasar la regla “required” como argumento.

    Con esta configuración, los campos de texto con la clase “mandatory” tendrán un borde subrayado rojo.

Comments are closed.