victorzadorozhnyy
@victorzadorozhnyy

Как проверить checkbox в форме ReactJS?

Задача сделать кнопку отправить не активной если не нажата галочка согласен.
Но как получить значение с чекбокса не пойму...
var MyContactForm = React.createClass({

    getInitialState() {
        return {
            disabled: true
        };
    },

    resetValidation() {
        this.setState({
            disabled: true
        });
    },

    validationState() {
        var checked = this.refs.input.checked(); //Пытаюсь проверить таким образом, но безуспешно, документации не обнаружил
    },

    handleChange() {
        this.setState( this.validationState() );
    },

   render: function() {
        return (
            <form>
                <Input type="text" label="Name" placeholder="Your Name" bsSize="large" />
                <Input type="email" label="Email" placeholder="Your Email" bsSize="large"/>
                <Input type="textarea" label="Massage" placeholder="Please tell me more" bsSize="large"/>

                <RulesAndConditions>Rules and Conditions</RulesAndConditions>
                <Input type="checkbox" label="Confirm" readOnly onChange={this.handleChange()} bsSize="large"/>

                <ButtonGroup vertical block>
                    <Button onClick={this.resetValidation} type="reset" bsStyle="warning" bsSize="large">Reset</Button>
                    <p/>
                    <Button type="submit" bsStyle="success" bsSize="large" disabled={this.state.disabled}>Submit</Button>
                    <p/>
                    <Button onClick={this.props.onHide} bsStyle="danger" bsSize="large">Close</Button>
                </ButtonGroup>
            </form>
        )
    }
});
  • Вопрос задан
  • 5380 просмотров
Решения вопроса 1
Пытаюсь проверить таким образом, но безуспешно, документации не обнаружил

А вы где ее искали? Refs to Components

onChange={this.handleChange()}

Вы на onChange хотите повесить результат вызова метода?

this.setState( this.validationState() );

А здесь вы какой стейт хотите проставить?

Если хотите через refs, то сначала сделайте привязку и тогда получите значение из свойства DOM элемента
к примеру так
<input ref="myCheckbox" ...

this.refs.myCheckbox.checked

Пример 1
Пример 2

Или используйте event в методе handleChange
handleChange(event) {
  var checked = event.target.checked;
}

Пример
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы