获取选择框更改事件的隐藏输入字段的ID

时间:2018-04-25 06:45:25

标签: php jquery laravel

我有一个动态表,其中的行数据使用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);
   }

我对此代码的问题是我只获得第一行隐藏字段的值。

获取每一行隐藏字段值的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

我永远都是独一无二的,永远不会为你提供你想要的结果:

function changeassigned(obj) {
  var id = $(obj).val();
  var form_id = $(obj).closest("tr").find('input').val();
  alert(form_id);
}

<强>演示

&#13;
&#13;
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;
&#13;
&#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);
}