简单的if语句里面的jquery $ .each函数不返回正确的值
问题描述:
我无法获得一个基本的if语句在jquery $ .each循环内工作。我有一个json对象,我通过循环,如果在json对象中找到输入到文本框中的值,我返回一个标志,我设置为false。但由于某种原因,if语句没有执行。下面是代码:
var authorlist = [
{"AUTHOR":"DONNA EDWARDS","COUNTRY":"USA","REGION":"MIDWEST"},
{"AUTHOR":"EMERALD JONES","COUNTRY":"UK","REGION":"EU"},
{"AUTHOR":"SHAKESPEARE","COUNTRY":"UK","REGION":"EU"}];
function checkName() {
var nameIsValid = true;
var nametocheck = $("#name").val();
$.each(authorlist, function(index, val){
//console.log(val.AUTHOR);
if(nametocheck == val.AUTHOR) {
//console.log(val.AUTHOR);
nameIsValid = false;
return false;
}
});
return nameIsValid;
}
$("#btnCheck").on("click", function(){
console.log("The name entered is valid: " + checkName());
});
<form class="form-horizontal" name="paymentInformation" id="paymentInformation" action="verifyOrder.cfm" method="post" role="form">
<div class="form-group">
<fieldset class="col-sm-12">
<!-- Row 1 -->
<div class="row">
<div class="col-sm-6">
<label for="id2" class="col-6 col-form-label">
Book Name
</label>
<input type="form-control" placeholder="Book Name" type="text" id="id2" name="id2" class="col-10">
<button type="button" class="btn btn-primary" id="btnCheck">Check</button>
</div>
</div>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
答
编辑以下
var nametocheck = $("#id2").val();
或使用以下
$("input[name='name']").val();
+0
男孩,我确定看起来像一个新手! :(谢谢!:) –
+0
我们都有一次看起来像一个新手! –
答
你需要解决的权限ID。
var nametocheck = $("#id2").val();
// ^^^^
答
你的错误是在var nametocheck = $("#name").val();
。
根据html的选择符应该是“#id2”。
“你的名字是有效的”逻辑似乎是倒退的。你的意思是说,如果用户输入的名字是在列表中,那么它是无效的?或者换句话说呢? –
@Leo Nix - 是的,但该命令在if语句中应该没有关系。这就是为什么你低估了我的问题吗?如果是这样,那肯定是最愚蠢的原因。如果没有,我的道歉。 –
我还没有投下你的问题:-) –