Пользовательское событие JavaScript происходит в цикле после нажатия кнопки отправки

Для пользовательского события JS после нажатия кнопки отправки на втором экране прогрессивного профилированияevent==='afterSubmit', все это событие повторяется снова и снова, пока я не закрою его. я использую e.stopImmediatePropagation(); чтобы остановить это событие, но это не работает какие-либо советы?

1 ответ

Решение

Я вижу одну вещь: поскольку вы используете событие afterSubmit и вызываете внутри него account.showScreenSet, каждый раз, когда вы нажимаете submit на новом экране, оно, в свою очередь, вызывает событие снова. Это, вероятно, нежелательное поведение.

Во-вторых, лучше запускать экран, только если проверяемое поле пустое, а не полное. Теперь это означает, что экран всегда будет срабатывать, если пользователь уже заполнил поле.

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

if (e.eventName === 'afterSubmit') {

                alert('afterSubmit Fired');

                if (typeof (e.profile.zip) !== 'undefined') {
                    if ((e.profile.zip == '') || (e.profile.zip == null)) {
                        alert('Yo 2nd step..');
                        alert('Zip is empty, please fill out your zipcode on the next screen');

                        gigya.accounts.showScreenSet({
                            screenSet: 'New-RegistrationLogin',
                            startScreen: 'Bio'
                        });
                    }
                }
            }

Кроме того, при добавлении дополнительной информации в профиль существующего пользователя рекомендуется использовать экран в наборе экранов ProfileUpdate, а не в наборе экранов RegistrationLogin.

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