我试图在加载时循环一个表单(可能有预先填充的字段)并分别填写一个支票或十字形(如果该字段已填入或空白)。
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类)。结果是所有结果的交叉。
任何帮助?
感谢。
答案 0 :(得分:3)
不是因为其他人也跑了。这是因为你正在使用兄弟姐妹()。
尝试运行:
console.log($('.main-input-field input').siblings('.form-feedback'));
你会改变它们。阅读关于兄弟姐妹如何工作的documentation