Форум программистов, компьютерный форум, киберфорум
JavaScript: ReactJS
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
1

Как опросить дочерние компоненты у формы

22.05.2018, 16:00. Показов 705. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
есть вот такая вот форма +/- пару строк сверху, но это не интересно
Javascript
1
2
3
4
5
6
7
export const Form =({...props})=> {
    return(
            <form {...props}>
                {props.children}
            </form>
        )
};
В форме оно юзается вот так.
Причем MaterialInput при срабатывании возвращает текст и статус
{text:'', valid:true}
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
render =()=> {
return <Form onSubmit={this.handleSubmit} className='col-wrapper'>
                    <div className='col-1'>
                        <MaterialInput
                            label={'UserName'}
                            onChange={this.onInputVal}
                            IsRequired={true}
                            path='username'
                            value={this.state.username}
                            regExMessage={Lang('IsRequired')}
                        />
                    </div>
                    <div className='col-1'>
                        <MaterialInput
                            label={'Password'}
                            onChange={this.onInputVal}
                            IsRequired={true}
                            path='password'
                            value={this.state.password}
                            regExMessage={Lang('IsRequired')}
                        /> </div>
                    <div className='col-1 element-padding'>
                        <MaterialButton
                            isSubmit={true}
                            className={'big screen-100'}
                        >{Lang('Login')}</MaterialButton>
                    </div>
</Form>
}
Но фишка в том, что пока я не начну вводить или не вызову потерю фокуса у поля, валидация там не работает.
Но надо, сделать как-то, что бы при срабатывании handleSubmit у формы, как-то опрашивались MaterialButton на валидность...
Как это сделать? MaterialButton имеет внутри метод isValid
Javascript
1
2
3
isValid = () => {
 return this.validate();
}
Возможно, я что-то не верно понял, но выходит я не могу пройтись по всем дочерним элементам и вызвать у них допустим ф-ю isValid?

Добавлено через 45 минут
Так, ладно. Я понял что идея с пробегом по дочерним элементам бред.
Из, за того что форма имеет разношорстную структуру, и не просто набор input'ов.
Проще хранить состояние вида, {value:'', isValid:''} а при сабмите его проверять
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2018, 16:00
Ответы с готовыми решениями:

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

SetState не обновляет дочерние компоненты
Всего 2 компонента, родитель и ребёнок для вывода через map в строке 276. Саме дурацкое, что через...

Не удаляются дочерние компоненты AnchorPane
Мне нужно по нажатию на кнопку полностью очистить содержимое AnchorPane который в свою очередь...

Дочерние формы, как сделать, чтобы они были разной прозрачности?
как в Paint.net

0
22.05.2018, 16:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2018, 16:00
Помогаю со студенческими работами здесь

Чтоб Дочерние формы открывались по иерархии от главной формы
Есть главная форма Form1, Form1 - topmost=true, т.е Form 1 отображается поверх всех окон. Нужно...

Узнать, есть ли у данной формы дочерние формы
Как узнать, есть ли у данной формы дочерние формы. Пока нашел только свойство &quot;Есть ли Mdi дочерние...

Как сделать что бы дочерние формы в MDI application delphi сразу не открывались при запуске программы
Здравствуйте, как сделать что бы дочерние формы в MDI application delphi сразу не открывались при...

Дочерние формы и выявление активной формы
Всем привет!!! У меня возникла следующая проблема, которую у меня решить не получается (может,...

Дочерние формы
Добрый день. Имеются три формы: MainForm, Form1 и Form2. С MainForm вызывается Form1, которая не...

Дочерние формы
Все привет, такая проблема.. Есть форма главного меню и есть другая форма главного меню...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru