我创建了一个元素来承载我的所有帐户元素,如下所示:
var $account_list_j = $('#account_list');
我添加了动态元素,因此结构看起来像
<div id="account_list">
<div class="card account-list-item">
<input id="group_name_0" type="text" class="form-control name" name="username" placeholder="Account name" value="">
</div>
<div class="card account-list-item">
<input id="group_name_0" type="text" class="form-control name" name="username" placeholder="Account name" value="">
</div>
</div>
我尝试遍历动态元素,如果其中任何一个的值小于最小帐户名长度,则返回false。
function accounts_name_check(params) {
var success = true;
$account_list_j.each(function(e) {
if($(this).find('.name').val().length < min_account_name_length && success){
var string = 'All Accounts must have a name of at least '+min_account_name_length+ ' characters.';
add_error_message(string);
$(this).find('.name').addClass('is-invalid');
success = false;
}
else{
$(this).find('.name').removeClass('is-invalid');
}
});
return success;
}
该函数似乎只会检查列表中的第一个元素,然后停止。第一个元素是唯一的静态元素(其他元素是使用按钮填充帐户列表div)。我在做什么错了?
答案 0 :(得分:1)
将此行var $account_list_j = $('#account_list');
更改为var $account_list_j = $('.account-list-item');
您有多个帐户项目列表(account-list-item
),而不是多个#account_list
。
答案 1 :(得分:0)
您需要var $account_list_j = $('#account_list .card');
才能获得列表