2017-07-29 4 views
0

J'ai un TextField et un PrimaryButton dans mon formulaire.Validation des champs de formulaire sur un clic de bouton dans le contrôle de l'interface utilisateur du bureau

Cliquez sur le bouton pour valider le champ de texte.S'il n'y a pas de valeur, déclenchez la validation fieldfield requise pour cliquer sur le bouton et afficher le même message que pour l'événement onGetErrorMessage.

Je sais que la validation est un événement fire onBlur mais je veux déclencher la validation en cliquant sur le bouton.

Comment puis-je le faire?

Répondre

1

D'abord, vous devez utiliser refs à votre TextField

<TextField ref={(input) => { this.textInput = input; }} label='test' /> 

vous pouvez maintenant définir onGetErrorMessage sur clic en utilisant refs

onClick(e){ 
    if(this.refs.input.value == undefined || this.refs.input.value == null || this.refs.input.value == '') 
     this.refs.input.onGetErrorMessage = "you error message" 
} 

Mise à jour 1: Découvrez ce code snippet

class FormExample extends React.Component { 
    constructor() { 
    super(); 
    this.state={ 
     inputError:'' 
    } 
    this.ValidateText = this.ValidateText.bind(this) 
    } 
    ValidateText(e){ 
    this.setState({ 
     inputError:this.input.value?'':'testing' 
    }) 
    } 
    render() { 
    return (
     <div> 
     <div> 
      <TextField 
      ref={(input) => { this.input = input; }} 
      label="Name" 
      errorMessage={this.state.inputError} 
     /> 
      <input type='button' value='Submit' 
      onClick={this.ValidateText} /> 
     </div> 
     </div> 
    ); 
    } 
} 
+0

Qu'est-ce que this.textInput? Je reçois une erreur à ce sujet. Je ne suis pas en mesure de trouver this.textInput et aussi pas trouvé this.refs.input.onGetErrorMessage? –

+0

ya je reçois également l'erreur .. je crée l'extrait attendez s'il vous plaît pendant un certain temps .. –

+0

@PiyushDhamecha vous utilisez * ref de rappel non chaîne ref *, ainsi pour accéder à la valeur de champ de texte utilisez ceci: 'this.textInput. value' :) –