Как получить ограничение на количество символов, включая имя по умолчанию - Reactjs

Я пытаюсь установить ограничение на количество символов для поля ввода, но поле ввода имеет значение по умолчанию.

если ограничение на количество символов превышает лимит текста, должен отображаться с ограничением 0 (не всплывающее окно)

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

Могу ли я узнать, как включить значение по умолчанию и установить сообщение, если оно будет равно 0

class Company extends React.Component {
state = {
      Title: this.props.selectedTable.Title,
      chars_left: 50,
      max_char:50
    }

   handleCharacterCount= (event) => {
    const charCount = event.target.value.length;
    const maxChar = this.state.max_char;
    const charLength = maxChar - charCount;
    this.setState({ chars_left: charLength });
    //this.setState({sTitle: e.target.value});
   }
   render() {
    return (
     <div>
      <textArea
        type = "text"
        maxLength = "50"
        required
        onChange = {this.handleCharacterCount}
        value = {this.state.Title}/>
      />
      <p>{this.state.chars_left}</p>
    </div>
  )
 }
}

Где вы хотите установить сообщение, если оно равно 0?

Md Isfar Uddin AlNur 08.06.2018 20:32

вниз до поля ввода

R9102 08.06.2018 20:33
onChange сработает только при нажатии вне текстовой области. Если вам нужны немедленные обновления, используйте onInput.
Joseph Webber 08.06.2018 20:46

вы имеете в виду, что код пишется, а не используется для изменения onInput

R9102 08.06.2018 20:50

Нет, просто предлагаю улучшение.

Joseph Webber 08.06.2018 21:05
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
478
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать это

state = {
  Title: this.props.selectedTable.Title,
  chars_left: 50 - this.props.selectedTable.Title.length,
  max_char:50
}



handleCharacterCount= (event) => {
const charCount = event.target.value.length;
const maxChar = this.state.max_char;
const charLength = maxChar - charCount;
this.setState({ chars_left: charLength,Title: event.target.value })}



render() {
return (
 <div>
  <textArea
    type = "text"
    maxLength = "50"
    required
    onChange = {this.handleCharacterCount}
    value = {this.state.Title}/>
  />
  {
    !this.state.chars_left &&
      <p>text has to appear at 0 limit</p>
  }
  <p>{this.state.chars_left}</p>
</div>)}

конечно, позволь мне проверить

R9102 08.06.2018 21:49

но мне также нужно проверить символы значения по умолчанию

R9102 08.06.2018 21:50

не понимаю. пожалуйста, объясни. Вы хотите также подсчитывать символы значения по умолчанию?

Md Isfar Uddin AlNur 08.06.2018 21:56

Я имею в виду, что у меня есть значения по умолчанию, которые отображаются в текстовом поле, это тоже будет учитываться

R9102 08.06.2018 21:57

если есть 50 макс. символов, у меня уже есть имя по умолчанию ----- если имя по умолчанию 'XYZ', мой счет должен быть 47

R9102 08.06.2018 22:07

в состоянии добавить. chars_left: 50 - this.props.selectedTable.Title.length

Md Isfar Uddin AlNur 08.06.2018 22:18

прокомментировал строку в моем вопросе ... это нормально

R9102 08.06.2018 22:19

chars_left: 50 - this.props.selectedTable.Title.length ......... это должно работать. Ты хочешь это?

Md Isfar Uddin AlNur 08.06.2018 22:22

Я отредактировал свой ответ. Теперь вы можете увидеть код, который вам нужен на самом деле.

Md Isfar Uddin AlNur 08.06.2018 22:37

Мне нужно установить сообщение на основе ответа api, он должен сказать «данные успешно сохранены», только если его статус 200, могу ли я получить некоторые предложения

R9102 08.06.2018 23:41

Где вы хотите разместить это сообщение? Можете ли вы попробовать: if (response.status === 200) {this.setState ({message: 'Данные успешно сохранены'})}

Md Isfar Uddin AlNur 09.06.2018 06:04

Должен ли я установить саму страницу действия?

R9102 09.06.2018 07:52

на уровне компонентов, как мы узнаем статус ответа ??

R9102 09.06.2018 13:14

Когда вы получите ответ api, вы можете установить объект состояния в соответствии с response.status. Если объект состояния истинен, вы можете показать сообщение или скрыть. Дай мне знать, получишь ты это или нет

Md Isfar Uddin AlNur 09.06.2018 17:36

Позвольте нам продолжить обсуждение в чате.

R9102 09.06.2018 17:55

Должен ли я поддерживать какое-либо состояние редукции или из вкладки сети.

R9102 09.06.2018 18:11

isfar Uddin AINur, не могли бы вы изучить этот вопрос stackoverflow.com/questions/50776961/…

R9102 09.06.2018 20:04

Другие вопросы по теме