【问题标题】:Simple if statement inside jquery $.each function not returning right valuejquery $.each 函数中的简单 if 语句不返回正确的值
【发布时间】:2018-04-02 14:14:43
【问题描述】:

我无法在 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/

【问题讨论】:

  • 您的“名称有效”的逻辑似乎是倒退的。您的意思是说如果用户输入的名称在列表中,那么它是无效的?还是相反?
  • @Leo Nix - 是的,但是 if 语句中的顺序不重要。这就是你拒绝我的问题的原因吗?如果是,那一定是最愚蠢的理由。如果没有,我很抱歉。
  • 我没有否决你的问题 :-)
  • 反对的选民真的应该发表评论,以便收件人知道原因并在必要时进行纠正。
  • @Leo Nix - 我同意,感谢您的建议。

标签: javascript jquery json if-statement each


【解决方案1】:

编辑以下

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

或使用以下

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

【讨论】:

    【解决方案2】:

    您需要填写正确的 id。

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

    【讨论】:

      【解决方案3】:

      您遇到的错误在var nametocheck = $("#name").val();

      根据html的选择器应该是“#id2”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-04
        • 2011-04-05
        • 2018-09-21
        • 1970-01-01
        • 2017-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多