【问题标题】:JavaScript Custom event is occuring in a loop after pressing submit button按下提交按钮后,JavaScript 自定义事件循环发生
【发布时间】:2017-09-20 22:19:40
【问题描述】:

对于在第二个渐进分析屏幕event==='afterSubmit' 上单击提交按钮后的 JS 自定义事件,整个事件不断重复,直到我关闭它。我正在使用e.stopImmediatePropagation(); 来阻止此事件,但它没有任何提示?

【问题讨论】:

    标签: gigya


    【解决方案1】:

    我看到的一件事是,由于您正在使用 afterSubmit 事件,并在其中调用 accounts.showScreenSet ,每次您在新屏幕上按下提交时,它都会再次调用该事件。这可能不是想要的行为。

    其次,最好仅在您检查的字段为空而不是满时才触发屏幕。现在的方式意味着如果用户已经填写了该字段,屏幕将始终触发。

    你可以试试这个:

    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 屏幕集中的屏幕。

    【讨论】:

    • 即使 zip 字段中有一些值,如何在提交后运行此代码至少一次。提交后事件后的屏幕设置应该只加载一次
    • Alok,你可以看到下面的链接;但基本上您需要在站点的架构中创建一个新的布尔字段,然后只有当该字段的值为 false 或 null 时才能显示屏幕,并且一旦显示屏幕,将该字段设置为 true (如果需要,还检查其他字段是否包含数据)。您可以在该页面上查看代码示例“注册后的时间”,了解如何进行设置。 developers.gigya.com/display/GD/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 2013-12-27
    • 2018-03-19
    • 2019-03-11
    • 2013-10-11
    • 2018-01-12
    • 1970-01-01
    相关资源
    最近更新 更多