【发布时间】:2019-02-16 02:43:23
【问题描述】:
我有一个 php 循环,可以正确显示我期望作为 html 标题的值。
我在这里要做的是为每一个创建一个隐藏输入,所以如果类别有 15 个标签,我想要 15 个隐藏输入。
下面的代码通过记录正确的信息“起作用”,但是,它只记录第一个。
显然,这是因为 php/html 循环分配了一个键,但 javascript 正在提取一个非唯一 ID。
如何正确地将这个键翻译成 javascript,以便记录所选项目的实际值,而不仅仅是第一个?
@foreach($items as $key => $item)
<h3 class="uk-width-4-10">{{$item->category}}</h3>
<input type="hidden" name="edit_category" id="edit_category" value="{{$item->category}}" />
@endforeach
function editCommentModal(){
console.log(document.getElementById("edit_category").value);
}
更新:
模态代码和包含 onclick 事件的 span 代码
@foreach($items as $key => $item)
<!-- display category and button -->
<h3 class="uk-width-4-10">{{$item->category}}</h3>
<a href="#edit-modal{{ $key }}" data-uk-modal><span onclick="editCommentModal()" class="uk-icon-plus-square"></span></a>
<!-- modal -->
<div id="edit-modal{{ $key }}" class="uk-modal edit-modal">
<h3 class="uk-width-4-10">{{$item->category}}</h3>
<input type="hidden" name="edit_category[]" id="edit_category" value="{{$item->category}}" />
</div>
@endforeach
function editCommentModal(){
var inps = document.getElementsByName('edit_category[]');
for (var i = 0; i <inps.length; i++) {
var inp=inps[i];
console.log("edit_category["+i+"].value="+inp.value);
}
}
【问题讨论】:
-
显然,这是因为 php/html 循环分配了一个键,但 javascript 正在提取一个非唯一 ID。 所以不要使用非唯一 ID .使用类
-
HTML 元素
id在文档中应该是唯一的
标签: javascript php jquery html laravel