if和else代码块一起运行

时间:2017-02-06 18:03:39

标签: jquery html css forms

我试图在加载时循环一个表单(可能有预先填充的字段)并分别填写一个支票或十字形(如果该字段已填入或空白)。

jQuery是:

 $(document).ready(function(){
    
      // test code for dynamic validation
      var $feedback = '.form-feedback';
      var $icon = 'i';
      var $good = 'ion-checkmark-circled';
      var $bad = 'ion-close-circled';
    
      // form selectors
      var arr = ["username", "first-name", "last-name"];
    
      $.each(arr, function(i, val) {
        if ($("#form-" + val ).val() !== '') {
          console.log("#form-" + val + ": "+ $good);
          $("#form-" + val ).siblings($feedback).find($icon).addClass($good);
        } else {
          console.log("#form-" + val+ ": "+ $bad);
          $('.main-input-field input').siblings($feedback).find($icon).addClass($bad);
        }
      });
    
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Username:</p>
    <p class="main-input-field"><input id="form-username" class="username" type="text" name="UserName" ><span class="form-feedback"><i></i></span></p>
    <p>First Name:</p>
    <p class="main-input-field"><input type="text" id="form-first-name" name="FirstName" ><span class="form-feedback"><i></i></span></p>
    <p>Surname:</p>
    <p class="main-input-field"><input type="text" id="form-last-name" name="Surname" ><span class="form-feedback"><i></i></span></p>

正如您所看到的,我有一个空白<i>元素,我想添加一个类,它将显示一个支票或一个十字架。当输入字段为空时它效果很好,但是如果输入字段有值,它运行代码然后还添加else代码(即添加$ good类,然后添加$ bad类)。结果是所有结果的交叉。

任何帮助?

感谢。

1 个答案:

答案 0 :(得分:3)

不是因为其他人也跑了。这是因为你正在使用兄弟姐妹()。

尝试运行:

console.log($('.main-input-field input').siblings('.form-feedback'));

你会改变它们。阅读关于兄弟姐妹如何工作的documentation