首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当reCAPTCHA成功时从元素中移除css类- Nextjs

当reCAPTCHA成功时从元素中移除css类- Nextjs
EN

Stack Overflow用户
提问于 2021-10-11 23:22:41
回答 2查看 74关注 0票数 1

当有人验证他们在表单中的输入时,我试图从输入按钮元素中删除一个css类btn-disabled

我目前创建了一个名为enableForm的函数,用于在验证reCAPTCHA时删除CSS类btn-disabled

目前,我的CSS类没有被删除,这不允许表单提交。我的console.log yes出现了,所以函数正在被调用,但我无法删除CSS类。这个方法以前是用普通的javascript来工作的,现在我正尝试在nextjs上做同样的事情。如何在reCAPTCHA成功后删除我的CSS类?

下面是我的代码片段:

代码语言:javascript
复制
import ReCAPTCHA from "react-google-recaptcha";

const TopForm = () => {

const enableForm = function () {
        console.log('yes')
        document.getElementById("btnSubmit").classList.remove = "btn-disabled";
    };

return (
 <div> 
 <input
                    id="first_name"
                    maxlength="40"
                    name="first_name"
                    size="20"
                    type="text"
                    placeholder="First Name*"
                    className="field"
                />
                <br />

                <input
                    id="last_name"
                    maxlength="80"
                    name="last_name"
                    size="20"
                    type="text"
                    placeholder="Last Name*"
                    className="field"
                />
          <ReCAPTCHA 
                sitekey="XXXXXX"
                onChange={enableForm}
                />
<input
                    id="btnSubmit"
                    type="submit"
                    name="submit"
                    className="btn-disabled btn-alternative width-inherit margin-left-0 "
                />

</div>
)

}

btn-disabled的CSS属性为:

代码语言:javascript
复制
.btn-disabled {cursor:not-allowed;opacity:0.5;text-decoration:none;pointer-events: none;}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-11 23:30:21

您可以根据状态的值以更好的方式管理类

代码语言:javascript
复制
        import ReCAPTCHA from "react-google-recaptcha";

const TopForm = () => {

const [isActive, setIsActive] = useState(false);


const enableForm = function () {
        console.log('yes')
        setIsActive(true)
    };

return (
 <div> 
 <input
                    id="first_name"
                    maxlength="40"
                    name="first_name"
                    size="20"
                    type="text"
                    placeholder="First Name*"
                    className="field"
                />
                <br />

                <input
                    id="last_name"
                    maxlength="80"
                    name="last_name"
                    size="20"
                    type="text"
                    placeholder="Last Name*"
                    className="field"
                />
          <ReCAPTCHA 
                sitekey="XXXXXX"
                onChange={enableForm}
                />
<input
                    id="btnSubmit"
                    type="submit"
                    name="submit"
                    className={`constant1 ${isActive ? "active" : ""} btn-alternative width-inherit margin-left-0`}
                />

</div>
)
票数 2
EN

Stack Overflow用户

发布于 2021-10-11 23:29:41

在您的函数中,您意外地犯了分配函数而不是调用函数的错误。

它应该是这样的:

代码语言:javascript
复制
const enableForm = function () {
        console.log('yes')
        document.getElementById("btnSubmit").classList.remove("btn-disabled");
    };

它现在应该可以工作了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69533467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档