我希望找到最近的div,其中包含一个' form_wrap'单击时按钮,然后找到该div中所有表单的ID。
这些表格作为两个Laravel foreach循环的一部分,并且已经被赋予了单独的动态ID号。需要收集这些ID号然后再提交。
<div class="form_wrap">
@foreach ($workouts as $workout)
<?php $formid="form_".$x."_".$f;?>
{!! Form::open(array('route' => 'workoutshared.store', 'method' => 'POST', 'ID' => $formid)) !!}
{{ csrf_field() }}
{{ Form::hidden('user_id', Auth::user()->id)}}
{{ Form::hidden('date', $entry)}}
{{ Form::hidden('weight', $workout->weight)}}
{{ Form::hidden('exercise', $workout->exercise)}}
{{ Form::hidden('reps', $workout->reps)}}
{{ Form::hidden('sets', $workout->sets)}}
<button id="submit" class="btn btn-default">Share</button>
{{ Form::checkbox('share', null, array('class' => 'form-control', 'required' => ''))}}
{!! Form::close() !!}
<tr>
<th>{{$workout->exercise}}</th>
<td>{{$workout->weight}}</td>
<td>{{$workout->reps}}</td>
<td>{{$workout->sets}}</td>
</tr>
<?php $f++; endforeach;?>
</div>
答案 0 :(得分:1)
我认为您希望$( "[id^='form_']" )
找到以&#34;形式_&#34;开头的任何ID。虽然在尝试在页面上查找多个元素时使用类是更好的选择。
var formWrap = $( "#SomeSpecificID" ).parent();
var formsInsideThatID = formWrap.children().attr('id');
答案 1 :(得分:1)
您遗漏了许多细节,因此可能需要修改答案以匹配。
例如 - 您是否要允许表单提交?拦截呢?或者你在乎吗?
另一点是 - 一旦你拥有它们,你想用ID做什么?
此代码将执行您所要求的操作。它使用事件委派,因此您应该可以在<head>
中加载它,它仍然可以按要求运行。
// Bind to the click event of all form buttons
$(document).on('click', 'form button', function() {
// Find the closest div
var wrap = $(this).closest('div.form_wrap');
// Then, find all form ID's inside of the div:
wrap.find('form').each(function() {
var id = $(this).prop('id');
});
});
您对这些ID的处理取决于您,但根据您的需要,有多种选择。