【发布时间】:2015-12-15 23:20:57
【问题描述】:
我在页面顶部有一个简单的登录,允许用户输入代码 - 然后代码读取 json 文件并提取该代码的特定用户。我确实在警报中显示了它,但是我希望在用户输入代码之前隐藏警报并在代码有效时显示。在我的 json 文件中,我有用户代码(当前名为 id),当输入用户代码时,他们的名称会显示在警报框中。如果不显示任何内容或不属于我的代码的无效代码,我希望显示错误警报。 这是我目前所拥有的:
登录文本按钮:
<div class="alert alert-info"><input type="text" id="userName" value> <button type="button" id="loginbtn" class="btn btn-primary btn-md">Login</button></div>
欢迎/登录提醒:
<div class="alert alert-success" id="loginalert"<strong>Welcome</strong></div>
错误提示:
<div class="alert alert-danger" id="ErrorMessageAlert" <strong>Error</strong>invalid</div>
以及我一直在编写的脚本:
$(document).ready(function() {
$("#loginalert").hide();
$("#ErrorMessageAlert").hide();
$("#loginbtn").click(function(event){
$.getJSON('result.json', function(jd) {
var id = $('#userName').val();
for (var i=0; i<jd.user.length; i++) {
if (jd.user[i].ID == id) {
$('#loginalert').html('<p> Welcome: ' + jd.user[i].name + '</p>');
$("#loginalert").show();
}else
{
$("#ErrorMessageAlert").show();
}
);
}
}
});
}); });
json 中的用户看起来像 {"user":[{"ID" : "001","name": "Zara Ali"}
因此,当用户输入 001 时,警报将显示该名称 如果用户不输入任何内容或输入无效代码,我希望显示错误消息。
非常感谢
【问题讨论】:
-
你遇到了什么错误?
-
为什么不使用
$.ajax及其error和success函数来代替this$.getJSON位? -
我希望在用户未输入任何内容或输入无效内容时出现错误 - 脚本不起作用。准备好出现两个警报后,我希望它们隐藏,然后如果用户输入正确的 id 则显示欢迎提示,如果没有显示或无效则显示错误提示
-
您没有关闭
loginalert和ErrorMessageAlert的<div>标签 -
你复制了那个小提琴里的东西吗?在页面加载时,两者均不显示。但是在尝试登录时它会同时显示,因为如果没有找到有效的 id,if/else 块会显示错误警报。正如@somethinghere 所说,您需要找到一种方法,一次只允许一次登录,也许是在找到有效 id 时停止循环。
标签: javascript jquery json