【问题标题】:Button in form event always returning false表单事件中的按钮总是返回 false
【发布时间】:2016-08-27 01:09:56
【问题描述】:

所以我有一个表单、一个 id 和密码以及一个提交按钮,当用户填写并使用按钮提交时,有一个函数检查 id 是否与密码匹配。但它总是在函数中返回 false。为什么?代码如下:

    <form>
        <input type="text" name="u" placeholder="ID" required="required" />
        <input type="password" name="p" placeholder="Password" required="required" />
        <button id="but" type="submit" class="btn btn-primary btn-block btn-large">Enter Workspace</button>
    </form>

    $(document).ready(function(){
        $('#but').click(function(e) {
            e.preventDefault(); 
            console.log("in function");
            var ID=$('input[name=u]').val();
            var password = $('input[name=p]').val();
            if(personnel[ID]){
                if(personnel[ID].password === password){
                    window.open("Workspace/index.html");
                }
                else{
                    alert("Incorrect ID Or Password")
                }

            }
            else{
                alert("Incorrect ID Or Password")
            }
        });
    });

var 人员在另一个脚本中,

<script src="L/scripts.js"></script>

【问题讨论】:

  • 哪个if() 失败了,if(personnel[ID]) 还是if(personnel[ID].password === password)
  • 您的数据是如何存储的?人员是对象还是数组?他们会在 id 中输入一个字符串吗?还是一个数字?
  • 向我们展示其他脚本的内容
  • 第一个 if 失败。 if(personnel[ID]) 失败。这是另一个脚本的一部分,因为它只是重复。 var person={ "I000001":{ "password":125827 }, "I000002":{ "password":192374 }, "I000003":{ "password":197292 }, "I000004":{ "password":193287 }, "I000005":{ "password":142823 }, "I000006":{ "password":192373 }, "I000007":{ "password":192834 }, "I000008":{ "password":123241 }, "I000009":{ "密码":192392 }, "I000010":{ "密码":200029 },
  • @Barmar,在我最后一次推荐中回答了你的问题

标签: javascript forms


【解决方案1】:

问题是您的密码是数字,但.val() 返回一个字符串。而且您正在使用与=== 的严格比较,因此它不会强制类型。

您应该将密码更改为personnel 中的字符串。

var personnel = {
  "I000001": {
    "password": "125827"
  },
  "I000002": {
    "password": "192374"
  },
  "I000003": {
    "password": "197292"
  },
  "I000004": {
    "password": "193287"
  },
  "I000005": {
    "password": "142823"
  },
  "I000006": {
    "password": "192373"
  },
  "I000007": {
    "password": "192834"
  },
  "I000008": {
    "password": "123241"
  },
  "I000009": {
    "password": "192392"
  },
  "I000010": {
    "password": "200029"
  },
};

$(document).ready(function() {
  $('#but').click(function(e) {
    e.preventDefault();
    console.log("in function");
    var ID = $('input[name=u]').val();
    var password = $('input[name=p]').val();
    if (personnel[ID]) {
      if (personnel[ID].password === password) {
        alert("Password is correct");
      } else {
        alert("Incorrect Password");
      }
    } else {
      alert("Incorrect ID");
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="u" placeholder="ID" required="required" />
<input type="password" name="p" placeholder="Password" required="required" />
<button id="but" type="submit" class="btn btn-primary btn-block btn-large">Enter Workspace</button>

【讨论】:

    猜你喜欢
    • 2020-01-12
    • 2012-07-14
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 2013-09-09
    相关资源
    最近更新 更多