【发布时间】:2020-04-01 16:17:08
【问题描述】:
我有三个选择选项菜单,例如部门、子部门和人员,以及一个克隆主题的按钮。 我想根据所选部门填充子部门,并根据所选子部门填充人员。 我可以通过 ajax 获取数据,但无法将其附加到第二或子部门选择选项
我的 HTML 代码
<input onclick="addRow()" type="button" value="+" style="float: left">
<div id="departs" class="row">
<table id="clonedtable">
<thead>
<tr>
<td>Department</td>
<td>Sub Department</td>
<td>Person</td>
</tr>
</thead>
<tbody>
<tr class="aaa">
<td>
<select id="departments" name="" class="required form-control departments">
<option value="0">--Select Department--</option>
@foreach($department as $dep)
<option value="{{$dep->id}}">{{$dep->department}}</option>
@endforeach
</select>
</td>
<td class="bbb">
<select id="Sub_departments" class="required form-control Sub_departments">
<option value="0">--Select Sub Department--</option>
</select>
</td>
<td>
<select id="name" name="name[]" class="required form-control">
<option value="0">--Select Person--</option>
{{--@foreach($name as $names)--}}
{{--<option value="{{$names->id}}">{{$names->name}}</option>--}}
{{--@endforeach--}}
</select>
</td>
</tr>
</tbody>
</table>
</div>
我的 JAVA 脚本代码
var counter = 0;
function addRow() {
//copy the table row and clear the value of the input, then append the row to the end of the table
$("#clonedtable tbody tr:first").clone().find("input").each(function () {
// $(this).val('');
}).end().appendTo("#clonedtable");
counter++;
// $("#removeclone").removeAttr("disabled");
};
$("#clonedtable").on('change','#departments',function () {
// alert($(this).val());
$dep_id = $(this).val();
$(this).closest("td").next("td").find(".Sub_departments option").remove(); // this works fine
// $(this).closest("td").next("td").find(".Sub_departments option").append('<option value=' +0+ '><--Select Sub Department--> </option>');
$.ajax({
url: 'get_sub_departments/'+$dep_id+'',
type: 'GET',
data: data,
dataType: 'json',
success: function (data) {
alert($(this).val());
// $(this).closest("td").next("td").find(".Sub_departments option").remove();
$(this).closest("td").next("td").find(".Sub_departments").append('<option value=' +0+ '><--Select Sub Department--> </option>'); //this won't work inside ajax but works outside of it
for (var i = 0; i < data.length; i++) {
$(this).closest("td").next("td").find(".Sub_departments").append('<option value=' + data[i].id + '>' + data[i].sub_department + '</option>'); //this won't work inside ajax but works fine outside
}
}
});
});
【问题讨论】:
标签: javascript jquery html laravel laravel-blade