Представьте, что существует объект со следующим свойством.
var rules = {
confirmedPassword: 'required|min:4|max:10',
}
Что мне нужно, это:
rules = { rules.confirmedPassword && {...rules.confirmedPassword, rules.confirmedPassword: '|same:password'}}
Чтобы получить это:
rules = {confirmedPassword: 'required|min:4|max:10|same:password',}
Причина в том, что в ответ я использую event.target
в функции для выполнения проверки позже.
Поэтому, если пользователь нажимает на элемент input
с помощью name="confirmPassword"
, он не только будет иметь значение по умолчанию required|min:4|max:10
но на самом деле 'required|min:4|max:10|same:password';
validateInputs(event) {
var { password, confirmPassword } = this.state;
var { name, value } = event.target;
var data = {
password: password,
confirmPassword: confirmPassword
};
var rules = {};
rules[name] = 'required|min:4|max:10';
var messages = {
'password.min': 'Password is too short.',
'password.max': 'Password is too long.',
'confirmPassword.min': 'Password is too short.',
'confirmPassword.max': 'Password is too long.'
};
validate(data, rules, messages)
.then(feedback => console.log(feedback))
.catch(errors => console.log('foo', errors));
this.setState({
[name]: value
});
}
Заранее спасибо!