2017-10-21 1 views
0

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/

+0

"name is valid"というあなたのロジックは後方にあるようです。あなたが入力した名前がリストに入っていて、それが無効であると言うのですか?それとも別のやり方ですか? –

+0

@Leo Nix - はい。ただし、if文での順序は関係ありません。それであなたは私の質問を落としたのですか?そうであれば、それは最悪の理由になるはずです。そうでなければ、私の謝罪。 –

+0

私はあなたの質問に投票していません:-) –

答えて

1

編集あなたは持っているエラーがvar nametocheck = $("#name").val();である

$("input[name='name']").val(); 
+0

男の子、私は確かにnoobのように見えますか? :(ありがとう!:) –

+0

私たちは一度すべてnoobのように見える! –

1

あなたは右のIDに対処する必要があります。ここでは、コードです。

var nametocheck = $("#id2").val(); 
//     ^^^^ 
1

var nametocheck = $("#id2").val(); 

または使用を以下に示します。

htmlのセレクタは "#id2"にする必要があります。