【问题标题】:Popup warning for RecaptchaRecaptcha 的弹出警告
【发布时间】:2018-06-17 06:50:08
【问题描述】:

我有 Ajax 表单。

客户端的表单字段使用 HTMLSelectElement.setCustomValidity() 进行验证。一切正常。发生错误时,浏览器会显示一个带有提示的漂亮弹出窗口。它看起来像这样:

https://youtu.be/XfNNpktl_X8

我想为未破解的 Recapcha 创建相同的弹出窗口,但我不知道如何。这是 Recapcha 块的代码:

<div class="group-item element-fullwidth">
   <div class="form-group form-group-select-white text-left">
      <label id="g-capcha-label" for="g-capcha" class="form-label form-label-outside rd-input-label text-white-05">Захист</label>
      <div id="g-capcha" required name="recaptcha" class="g-recaptcha" data-sitekey="хххххххххххххххххххххххххххххх"></div>
   </div>
</div>

Recapcha 验证发生在表单发送之前,也可以正常工作。代码如下:

function OnBeginBooking() {
   var v = grecaptcha.getResponse();
   if (v.length === 0) {
      //What should I write here?
      return false;
   } else {
      $(".loader").removeClass("hidden-loader");
      $("#bookingpanel").addClass("hidden-booking-button");
      return true;
   }        
}

谁能提供解决方案?是否可以为div调用CustomValidity()弹出窗口?或者也许有其他选择?

【问题讨论】:

    标签: javascript html asp.net validation recaptcha


    【解决方案1】:

    嗯...由于没有答案,我制作了自己的弹出窗口。它看起来像这样:

    https://youtu.be/SfdNPt2ST-U

    也许有人会派上用场 - 这是代码:

    CSS:

    #toolTip {
        background-color: #ffffff;
        border: 1px solid;
        width: 170px;
        height: 40px;
        margin-left: 15px;
        position:absolute;
        border-radius: 3px;
        -moz-border-radius: 3px;
        -webkit-border-radius: 3px;
        -webkit-box-shadow: 6px 6px 12px -4px rgba(0,0,0,0.7);
        -moz-box-shadow: 6px 6px 12px -4px rgba(0,0,0,0.7);
        box-shadow: 6px 6px 12px -4px rgba(0,0,0,0.7);
        left: -3px;
        top: 80px;
        transition: 0.3s;
        -moz-transition: 0.3s;
        -webkit-transition: 0.3s;
        -o-transition: 0.3s;
    }
    
    #toolTip span {
        position: absolute;
        padding:10px;
        font-family: sans-serif;
        font-size: 13px;
        color: #2b2b2b;
    }
    
    #toolTip img {
        margin-top: 6px;
        z-index:15;
        margin-left: 5px;
    }
    
    #arrow {
        background-color: #ffffff;
        border: 1px solid;
        border-bottom: none;
        border-right: none;
        width: 10px;
        height: 10px;
        position: absolute;
        top: -6px;
        left: 10px;
        -webkit-transform: rotate(45deg);
        -moz-transform:    rotate(45deg);
        -ms-transform:     rotate(45deg);
        -o-transform:      rotate(45deg);
    }
    
    .tooltip-hidden {
        opacity:0;
    }
    

    HTML:

    <div class="form-group form-group-select-white text-left">
                    <label id="g-capcha-label" for="g-capcha" class="form-label form-label-outside rd-input-label text-white-05">Захист</label>
                    <div id="g-capcha" required name="recaptcha" class="g-recaptcha" data-sitekey="6Lc2wSwUAAAAACLMEVOKUPoe0uhiZT-JNIBmYVMb"></div>
                    <div id="toolTip" class="tooltip-hidden">
                        <img src="/images/alertiico.png" width="25" height="25">
                        <span>Відмітьте поле!!!</span>
                        <div id="arrow"></div>
                    </div>
                </div>
    

    JS(这是我的 Ajax 表单的 OnBegin 函数):

    function OnBeginBooking() {
    var v = grecaptcha.getResponse();
    if (v.length === 0) {
        $("#toolTip").removeClass("tooltip-hidden");
        setTimeout(function () { $("#toolTip").addClass("tooltip-hidden") }, 2500);
            return false;
        }
    

    }

    【讨论】:

      猜你喜欢
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      相关资源
      最近更新 更多