我有一个动态表,其中的行数据使用foreach方法显示。 我想在更改选择框选项时获取隐藏输入字段的值。 这是我的代码,
@foreach($sCForms as $sCForm)
<tr>
<td>{!! $sCForm->Description !!}</td>
<td style="display: none;"><input type="hidden" class="hidden"
value="{{$sCForm->id}}" id="hidden"></td>
<td class="demo">
<select name="assigned_to" id="assigned_to" class="demo form-control
required" style="width: 90%;" onchange="changeassigned()">
<option value="">--Select user--</option>
@foreach($users as $user)
<option value="{{$user->id}}">
{{$user->first_name}} {{$user->last_name}}
</option>
@endforeach
</select>
</td>
</tr>
@endforeach
我的职能:
function changeassigned()
{
var id = $('#assigned_to').val();
var form_id = $('.demo').parent().parent().find('input').val();
alert(form_id);
}
我对此代码的问题是我只获得第一行隐藏字段的值。
获取每一行隐藏字段值的最佳方法是什么?
答案 0 :(得分:1)
我永远都是独一无二的,永远不会为你提供你想要的结果:
function changeassigned(obj) {
var id = $(obj).val();
var form_id = $(obj).closest("tr").find('input').val();
alert(form_id);
}
<强>演示强>
function changeassigned(obj) {
var id = $(obj).val();
var form_id = $(obj).closest("tr").find('input').val();
alert(id + " | " + form_id);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td>My Form</td>
<td style="display: none;"><input type="hidden" class="hidden" value="FormID" id="hidden"></td>
<td class="demo">
<select name="assigned_to" class="demo form-control
required" style="width: 90%;" onchange="changeassigned(this)">
<option value="">--Select user--</option>
<option value="user1">
user1
</option>
<option value="user2">
user2
</option>
</select>
</td>
</tr>
<tr>
<td>My Form2</td>
<td style="display: none;"><input type="hidden" class="hidden" value="FormID2" id="hidden"></td>
<td class="demo">
<select name="assigned_to" class="demo form-control
required" style="width: 90%;" onchange="changeassigned(this)">
<option value="">--Select user--</option>
<option value="user3">
user3
</option>
<option value="user4">
user4
</option>
</select>
</td>
</tr>
</tbody>
</table>
&#13;
答案 1 :(得分:0)
看起来你将获得具有相同“id”的元素。将其更改为类或某事=)
你可以将“this”传递给changeassigned函数以获得你选择器的起点
答案 2 :(得分:0)
Try Like this - using variable i, create dynamic id of hidden and select
{{ $i=0 }}
@foreach($sCForms as $sCForm)
<tr>
<td>{!! $sCForm->Description !!}</td>
<td style="display: none;"><input type="hidden" class="hidden"
value="{{$sCForm->id}}" id="hidden{{ $i }}"></td>
<td class="demo">
<select name="assigned_to" id="assigned_to{{ $i }}" class="demo form-control
required" style="width: 90%;" onchange="changeassigned({{ $i }})">
<option value="">--Select user--</option>
@foreach($users as $user)
<option value="{{$user->id}}">
{{$user->first_name}} {{$user->last_name}}
</option>
@endforeach
</select>
</td>
{{ $i++ }}
</tr>
@endforeach
function changeassigned(i)
{
var id = $('#assigned_to'+i).val();
var form_id = $('#hidden'+i).val();
alert(form_id);
}