首页 > 解决方案 > 我的输入元素没有手动更新或显示值

问题描述

我有来自后端的数据,其中包含一个带有元素的表input,我将此表附加到表的正文中。

因此,即使我按下检查并手动设置值,我的问题输入元素也不会更新值,也不会显示值。我不知道发生了什么事。

这是我来自后端(PHP)的代码:

public function get_target_type_record(Request $request){
  //...
  foreach ($routes as $list) {
    $table .= "<tr class='collapse order" . $i . " business_type_id_" . $item->id . "'>";
    $table .= "<td><i class=\"fa fa-minus-square\"></i> </td>";
    $table .= "<td>--</td>";
    $table .= " <td>" . $list->id . "</td>";
    $table .= "<td>" . $list->route_name . "</td>";
    $table .= "<td>
    <input type='text' class='form-control dynamic-input'
    value='0'>
    </td>";
    $table .= "<td></td></tr>";
  }

  return response()->json($table);
}

刀片文件(html):

<table class="table table-hover users-table">
  <thead>
    <tr>
      <th>#</th>
      <th>ID</th>
      <th>Name</th>
      <th>Quantity</th>
    </tr>
  </thead>
  <tbody id="target-table">
  </tbody>
</table>

这是我的 jQuery 代码:

$('#select2-target_type_group_menu2').on('change', function(event) {
  var menu2_id = this.value;
  var menu1_id = document.getElementById('menu1_id').value;
  event.preventDefault();
  $.ajax({
    url: "{{route('get_target_type_record')}}",
    type: "GET",
    dataType: 'json',
    data:{
      item_type : [
        menu1_id,
        menu2_id
      ],
    },
    success: function (data) {
      document.getElementById('item_IDs').value = data.item_IDs;

      $("#target-table").empty();
      $('#target-table').append(data.table);
    }
  });
});

标签: javascriptjquerylaravel

解决方案


如果您确定您的 ajax 调用正确返回数据。那么问题可能是jQuery部分。table由于您在转换为 JSON 时没有为 $table 变量分配属性,因此您应该使用 ajax 返回的数据,例如:

success: function (data) {
  document.getElementById('item_IDs').value = data.item_IDs;

  $("#target-table").empty();
  $('#target-table').append(data); //!!!
}

如果您想保留该属性,请尝试:

return response()->json(['table'=>$table]);

推荐阅读