【问题标题】:javascript validate and validate on click or enterjavascript 在点击或输入时验证和验证
【发布时间】:2021-03-07 13:07:25
【问题描述】:

我有一个登录脚本日期在单击提交按钮时验证。

    // Below function Executes on click of login button.
    function validate(){
        var password = document.getElementById("passid").value;
        if ( password == "thisisthepassword"){
            window.location = "loggedin.html"; // Redirecting to other page.
            return false;
        }
    }
    <form id="code" method="post">
    <div class="form-group"><input class="form-control" type="password" name="passid" id="passid""></div>
    <div class="form-group">
    <button class="btn btn-primary btn-block" type="button" value="Login" id="submit" onclick="validate()" style="border: none;">Login</button></div>
    </form>

现在我希望这个脚本在输入代码后按下回车键时也能运行,但我发现的示例似乎都不能与我已有的示例结合使用

【问题讨论】:

  • 您是否尝试在用户每次按下键盘上的键时运行validate 函数?
  • 首先要做的是从按钮中删除onClick,并将验证检查移至form 中的onSubmit 属性。这将允许输入按预期工作。查看 W3 中的示例:w3schools.com/js/js_validation.asp
  • 我将验证移至表单:
    并将其从按钮中删除并使其类型=提交。现在脚本只在我按回车时运行,并且只在密码错误的情况下运行,如果正确则什么都不会发生

标签: javascript authentication keyboard


【解决方案1】:

我猜,您可以更改按钮类型以提交,并使用 表单元素上的 onsubmit="validate()" 事件,而不是您在按钮上使用的 onclick 事件

【讨论】:

    【解决方案2】:

    参见下面的 sn-p,我添加了一个事件侦听器,当按下 enter 时会触发按钮点击。这仍将运行与单击按钮时相同的验证。

    function validate() {
      var password = document.getElementById("passid").value;
      if (password == "thisisthepassword") {
        window.location = "loggedin.html"; // Redirecting to other page.
        return false;
      }
    }
    
    //This code will trigger a button click when "enter" is pressed.
    var input = document.getElementById("passid");
    input.addEventListener("keyup", function(event) {
      // keyCode 13 is the "Enter" key on the keyboard
      if (event.keyCode === 13) {
        // Prevent default action
        event.preventDefault();
        // Trigger the button element with a click
        document.getElementById("submit").click();
      }
    });
    <form id="code" method="post">
      <div class="form-group">
        <input class="form-control" type="password" name="passid" id="passid" "></div>
    <div class="form-group ">
    <button class="btn btn-primary btn-block " type="button " value="Login " id="submit " onclick="validate() " style="border: none; ">Login</button></div>
    </form>

    【讨论】:

    • 我现在使用了这段代码,但是没有运行。脚本在外部文件中是否重要?在标题中调用?
    • 如果您从外部文件调用脚本,请确保在结束 &lt;/body&gt; 标记之前调用它。这将确保在您运行脚本之前已加载所有 DOM 元素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2014-03-17
    • 2014-12-20
    相关资源
    最近更新 更多