Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表单事件中的按钮始终返回false_Javascript_Forms - Fatal编程技术网

Javascript 表单事件中的按钮始终返回false

Javascript 表单事件中的按钮始终返回false,javascript,forms,Javascript,Forms,所以我有一个表单,一个id和密码,还有一个提交按钮,当用户填写表单并用按钮提交时,会有一个检查id和密码是否匹配的函数。但它在函数中总是返回false。为什么?代码如下: <form> <input type="text" name="u" placeholder="ID" required="required" /> <input type="password" name="p" placeholder="Password"

所以我有一个表单,一个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")
            }
        });
    });

进入工作区
$(文档).ready(函数(){
$('#but')。单击(函数(e){
e、 预防默认值();
console.log(“登录功能”);
var ID=$('input[name=u]')。val();
var password=$('input[name=p]')。val();
如果(人员[ID]){
如果(人员[ID]。密码===密码){
window.open(“Workspace/index.html”);
}
否则{
警报(“不正确的ID或密码”)
}
}
否则{
警报(“不正确的ID或密码”)
}
});
});
var人员在另一个脚本中

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

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

您应该在
人员
中将密码更改为字符串

var人员={
“I000001”:{
“密码”:“125827”
},
“I000002”:{
“密码”:“192374”
},
“I000003”:{
“密码”:“197292”
},
“I000004”:{
“密码”:“193287”
},
“I000005”:{
“密码”:“142823”
},
“I000006”:{
“密码”:“192373”
},
“I000007”:{
“密码”:“192834”
},
“I000008”:{
“密码”:“123241”
},
“I000009”:{
“密码”:“192392”
},
“I000010”:{
“密码”:“200029”
},
};
$(文档).ready(函数(){
$('#but')。单击(函数(e){
e、 预防默认值();
console.log(“登录功能”);
var ID=$('input[name=u]')。val();
var password=$('input[name=p]')。val();
如果(人员[ID]){
如果(人员[ID]。密码===密码){
警报(“密码正确”);
}否则{
警报(“密码不正确”);
}
}否则{
警报(“不正确的ID”);
}
});
});


进入Workspace
哪个
if()
失败,
if(人员[ID])
if(人员[ID]。密码===密码)
?您的数据是如何存储的?人员是物体还是阵列?他们是否在id中键入字符串?或者它是一个数字?如果失败,首先向我们展示另一个脚本的内容。如果(人员[ID])失败。这是另一个脚本的一部分,因为它只是重复。var Personal={“I000001”:{“密码”:125827},“I000002”:{“密码”:192374},“I000003”:{“密码”:197292},“I000004”:{“密码”:193287},“I000005”:{“密码”:142823},“I000006”:{“密码”:192373},“I000007”:{“密码”:192834},“I000008”:{“密码”:123241},“I000009”:{“password”:192392},“I000010:{“password”:200029},@Barmar在我最后一次发言中回答了你的问题