【问题标题】:Yii2 captcha refresh buttonYii2验证码刷新按钮
【发布时间】:2016-06-25 11:14:53
【问题描述】:

我正在使用 yii2 高级框架的默认验证码实现。我有一个问题:我想在我的验证码中添加一个刷新按钮,但我不知道该怎么做

【问题讨论】:

  • 为了更好的用户体验和节省用户时间,请使用google recaptcha。 google.com/recaptcha/intro。我在 Yii2 中配置,运行良好。

标签: php yii yii2 yii2-advanced-app


【解决方案1】:

将验证码操作添加到您的控制器,将验证码添加到您的表单,将captcha 的字段和验证规则添加到您的模型。阅读更多here

并在视图中添加按钮以更新验证码图像,如下所示:

<?php echo $form->field($model, 'captcha')->widget(Captcha::className(), [
    'imageOptions' => [
        'id' => 'my-captcha-image'
    ]
]); ?>

<?php echo Html::button('Refresh captcha', ['id' => 'refresh-captcha']);?>
<?php $this->registerJs("
    $('#refresh-captcha').on('click', function(e){
        e.preventDefault();

        $('#my-captcha-image').yiiCaptcha('refresh');
    })
"); ?>

【讨论】:

  • 使用 registerJs 并将 JavaScript 与 PHP 代码混合被认为是不好的做法。最好改用assets
  • twoggle.com/blog/refreshable-captcha-yii2 (基本上使用上面 Vitaly 的答案,但将其放入自己的单独类中扩展验证码,很好很优雅)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-29
  • 2016-01-22
  • 1970-01-01
  • 2020-05-01
  • 2012-04-26
相关资源
最近更新 更多