jquery $ .eachループ内で基本if文を取得できません。 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>
https://jsfiddle.net/wqnkz4v7/
"name is valid"というあなたのロジックは後方にあるようです。あなたが入力した名前がリストに入っていて、それが無効であると言うのですか?それとも別のやり方ですか? –
@Leo Nix - はい。ただし、if文での順序は関係ありません。それであなたは私の質問を落としたのですか?そうであれば、それは最悪の理由になるはずです。そうでなければ、私の謝罪。 –
私はあなたの質問に投票していません:-) –