【发布时间】:2019-12-13 17:49:34
【问题描述】:
我尝试使用 jQuery 从输入文本中获取值,但我只得到了第一个值。输入文本是循环的。
这是 HTML:
<div class="item-container-add">
@foreach($cartCollection as $cart)
@if($cart['name'] != 'asdfghjklkjgfds123890')
<div class="row row-add mr-1">
<div class="col-sm-6">
<input type="text" class="id_delete" name="id_delete" id="id_delete" value="{{ $cart['id'] }}">
</div>
<div class="col-sm-2 border-cart">
<button class="btn btn-del delete_button" name="delete_button" type="submit">Hapus<img class="icon-delete" src="./svg/delete.svg"></button>
</div>
</div>
@endif
@endforeach
</div>
从这些 HTML 中,我得到了 4 个不同的 ID,它们都有自己的删除按钮。当我尝试单击删除时,我的 jQuery 函数仅从这些循环中获取第一个 ID。它应该在我单击按钮的地方获得 ID。这是我的 jQuery 函数:
$(document).on('click', '.delete_button', function(e) {
var a = $("#id_delete").val();
alert(a);
$.ajax({
/* some ajax function */
});
});
【问题讨论】:
-
每个页面的 ID 必须是唯一的,现在您在每次迭代的循环中都有相同的 ID。 JS 选择器将始终只获取具有 ID 的第一个元素,并且永远不会看到其他元素
-
id 应该是唯一的,不要重复 id。
-
var a = $("#id_delete").val();将始终只获得与此匹配的第一个元素。这是设计使然。您要做的是使用可用的 jquery 工具在您单击的按钮上找到匹配的输入。$(this).closest('.row').find('input.id_delete');类似的东西
标签: javascript jquery html ajax laravel