У меня простая форма контакта, с проверкой, сделанной с использованием ember-cp-validations https://github.com/offirgolan/ember-cp-validations, и теперь мне нужно интегрировать новый Google Recaptcha в это.Ember: Интеграция Google Recaptcha с ember-cp-validations
Для визуализации recaptcha, я использую этот код - https://gist.github.com/cravindra/5beeb0098dda657433ed - который отлично работает.
Однако, я не знаю, как иметь дело с процессом проверки, чтобы форма должны быть представлены/предотвращены, если задача правильно/неправильно или не предусмотрено
Вот укороченная версия моего контактно форма компонент
import Ember from 'ember';
import Validations from './cp-validations/contact-form';
import config from '../config/environment';
export default Ember.Component.extend(Validations,{
data:{},
nameMessage:null,
init() {
this._super(...arguments);
this.set('data',{});
},
actions:{
submitForm() {
this.validate().then(({model,validations}) => {
if (validations.get('isValid')) {
// submit form
}
else {
if(model.get('validations.attrs.data.name.isInvalid')){
this.set('nameMessage',model.get('validations.attrs.data.name.messages'));
}
}
})
}
}
});
Здесь шаблон для компонента, который включает в себя рендеринг с использованием recpatcha сути выше
<form {{action 'submitForm' on='submit'}}>
<div class="row">
<div class="medium-6 columns">
{{input type="text" value=data.name id="name" placeholder="Enter your name"}}
<div class="error-message">
{{nameMessage}}
</div>
</div>
</div>
<div class="row">
<div class="medium-12 columns">
{{google-recaptcha}}
</div>
</div>
<button class="button primary" type="submit">Submit</button>
</form>
Импорт валидаций выглядит следующим образом:
import { validator, buildValidations } from 'ember-cp-validations';
export default buildValidations({
'data.name': {
validators: [
validator('presence',{
presence:true,
message:'Please enter your name'
})
]
},
});
Большое спасибо за помощь!
Спасибо для возвращения - извините, я не понимаю этого. Я вижу из компонента recaptcha мне нужно иметь дело с действием captchaComplete в родительском компоненте (контактной форме) или маршруте - но я не получаю нигде с этим - есть ли у вас какие-либо рекомендации? Большое спасибо! – Newfoundland
@Newfoundland Я обновил свой ответ –
Большое спасибо за то, что вы вернулись - извините за задержку - я скоро проверю это - очень ценю вашу помощь в этом! – Newfoundland