дополнительное отображение текста при нажатии поля формы - реагировать - PullRequest
0 голосов
/ 30 мая 2019

Я создаю форму в реакции, и в настоящее время, когда поле нажимается, оно добавляет синюю рамку (которую я хотел бы сохранить), но я хотел бы, чтобы внизу появился дополнительный текст, и я не уверен, как сделать это?

В основном, у меня есть поле для имени, и когда его щелкнули, я бы хотел, чтобы "Введите ваше имя" появилось под этим полем.

вот что у меня сейчас есть:

<div className="form-group form-row">
    <label
       id="firstNameLabel"
       className="col-md-2 col-form-label text-md-right"
       htmlFor="firstName1"
       readOnly
    >
      First Name*
    </label>
    <div className="col-md-10">
         <input
         type="text"
         className="form-control"
         name="firstName1"
         ref="firstName1"
         placeholder="First Name"
         value={this.state.firstName1} 
         onChange={this.handleChange} 
         required
     />
     <div className="error" id="firstnameError" />
   </div>
 </div>

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Для этого можно использовать события onFocus и onBlur, вот пример:

<input
  onFocus={() => this.setState({inputFocused: true})}
  onBlur={() => this.setState({inputFocused: false})}
\>
{this.state.inputFocused && <div>Some message</div>}
1 голос
/ 30 мая 2019

Это выглядит так:

В случае, если вы хотите следить, сохраните флаг в состоянии, например,

this.setState({userClicked:true})

Событие, которое вы хотите посмотреть, может быть onFocus, т.е.

<input
     type="text"
     className="form-control"
     name="firstName1"
     ref="firstName1"
     placeholder="First Name"
     value={this.state.firstName1} 
     onFocus={()=>{ this.setState({userClicked:true}) }}
     onChange={this.handleChange} 
     required
   />

Вы также можете использовать onBlur, чтобы установить флаг в значение false, когда ввод теряет фокус, Затем в рендере поместите ниже код, где вы хотите, чтобы уведомление появилось:

....
{this.state.userClicked && <div>Enter first name</div>}

Над строкой убедитесь, что div отображается, когда userClicked истинно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...