如果未填写 command/specific 输入,则禁用所有其他输入

disable all other inputs if command/specific input not filled in

我正在尝试禁用特定表单“<form id="join">”中的所有其他输入 如果用户没有先填写 <input type="text" id="userkey" name="userkey" /> 输入,所有其他输入将保持禁用状态,直到“<form id="join">”输入已填写。

这样做的原因是 模拟用户行为 因此他们会出于各种我不会的原因首先加入我们的 site discord进入。我知道这不是一种安全的方法。所有用户数据都将在服务器端进行清理和验证,以保护 site/database。我知道可以绕过这个并仍然提交数据,再次用户数据将在服务器端进行清理和验证以保护 site/database。我这样做是因为即使在会员表格上有一个巨大的注释,他们仍然试图提交数据并绕过加入不和谐,这使得与他们沟通变得困难。这是对网站进行白痴验证的尝试 - 它还会阻止大量垃圾邮件,因为垃圾邮件机器人通常无法加入不和谐。

这是一个非常简单的例子,我将从中推断出我们的实际会员形式。

这是htmt

<form id="join-membership">
    user key
    <br />
    <input type="text" id="userkey" name="userkey" />
    <br />
    <p>If you do not have a user key, please <a href="#">join our discord</a> to get one</p>
    Email
    <br />
    <input type="email" id="email" disabled="disabled" />
    <br />
    Username
    <br />
    <input type="text" id="username" name="username" disabled="disabled" />
    <br />
    Password
    <br />
    <input type="password" id="pass" name="password" disabled="disabled" />
    <br />
    Confirm Password
    <br />
    <input type="password" id="pass2" name="password2" disabled="disabled" />
    <br />
    About You
    <br />
    <textarea id="about" name="about" disabled="disabled"></textarea>
    <br />
    <input type="submit" id="submit" value="Register" disabled="disabled" />
</form>
<div id="test"></div>

    

这里是 JavaScript

<script>

(function() {
    $('form > input').keyup(function() {

        var email = true;
        var empty = false;
        $('form > input').each(function() {
            if ($(this).val() == '') {
                empty = true;
            }
        });

        if (email == empty) {
            $('#register').attr('disabled', 'disabled');
        } else {
            $('#register').removeAttr('disabled');
        }
    });
})()

</script>

请注意,我是 JavaScript 和网络的超级新手,已经研究并找到了禁用提交按钮的脚本,但我们的表单有点复杂,我不希望用户尝试填写它以找出即使他们没有阅读说明也无法提交。这是模范用户行为,我希望从长远来看能提供更好的用户体验。

感谢您提供的任何帮助。

您好,您可以尝试这样的操作

 (function() {
    $("#userkey").keyup(function() {
      const userkey = this.value;
        if (userkey) {
          $('.other-inputs input, .other-inputs textarea').removeAttr('disabled');
            } else {
             $('.other-inputs input, .other-inputs textarea').attr('disabled', 'disabled');
         }
    });
})()

在用户键输入更改时,该函数正在检查 userkey 输入中是否存在值(如果存在)它将从 div [=] 中的输入中删除 disabled 属性13=]

在此处查看示例:https://jsfiddle.net/t4ub0xs3/