React Bootstrap Form Validation

Viewed 1361

Currently I have this React Bootstrap Form that I am able to validate the form fields individually:

<RB.Form horizontal>
  <RB.FormGroup
    controlId="cidInputName"
    validationState={this.getNameValidationState()}
  >
    <RB.ControlLabel>Name/Label</RB.ControlLabel>
    <RB.FormControl
      type="text"
      value={this.state.name}
      placeholder="Enter text"
      onChange={this.handleNameChange}
    />
    <RB.FormControl.Feedback />
    <RB.HelpBlock>Any name that you wanna use</RB.HelpBlock>
  </RB.FormGroup>

  <RB.FormGroup
    controlId="cidInputMonth"
    validationState={this.getMonthValidationState()}
  >
    <RB.ControlLabel>Month (1-12)</RB.ControlLabel>
    <RB.FormControl
      type="text"
      value={this.state.month}
      placeholder="Enter month number"
      onChange={this.handleMonthChange}
    />
    <RB.FormControl.Feedback />
    <RB.HelpBlock>Must be a number from 1 to 12 only</RB.HelpBlock>
  </RB.FormGroup>

  <RB.FormGroup
    controlId="cidInputDay"
    validationState={this.getDayValidationState()}
  >
    <RB.ControlLabel>Day (1-31)</RB.ControlLabel>
    <RB.FormControl
      type="text"
      value={this.state.day}
      placeholder="Enter day number"
      onChange={this.handleDayChange}
    />
    <RB.FormControl.Feedback />
    <RB.HelpBlock>Must be a number from 1 to 31 only</RB.HelpBlock>
  </RB.FormGroup>

</RB.Form>

When each form field has a valid input, each FormGroup's validationState should have 'success' as its value.

How do I check for this? How do I check the whole form that all inputs are valid and 'success'-ful?

Is it an anti-pattern to check each function used in validationState?

e.g.

if(this.getNameValidationState() == true && this.getMonthValidationState() == true .....etc...)
0 Answers
Related