javascript - 使用 javascript 添加下拉表单 - Laravel
问题描述
我有一个带有下拉菜单的表单。我想让下拉菜单在单击按钮时多次出现。如下图:
如果我点击“添加更多学生”按钮,应该会出现另一个学生的下拉菜单。
这是我的代码
<form_answer id = "more_student" >
<div id ="student_id" class="form-group">
<label class="form-control-label" for="student_id">{{ __('Student') }}</label>
<select type="text" name="student_profile_id" id="student_id" class="form-control">
<option disabled selected> -- select an option -- </option>
@if($student)
@foreach($student as $data)
<option value="{{$data->id}}"> {{$data->student_name}}</option>
@endforeach
@endif
</select>
</div>
<div class = "text-right">
<a class="btn btn-success mt-4" id = "btn_add">Add More Student</a>
</div>
和脚本:
<script>
$(document).ready(function(){
$('#btn_add').click(function(){
add_row();
});
});
var id = 0;
function add_row(){
id++;
var html = '<div id ="student_id" class="form-group">' +
'<label class="form-control-label" for="student_id">{{ __("Student") }}</label>' +
'<select type="text" name="student_profile_id" id="student_id" class="form-control">' +
'<option disabled selected> -- select an option -- </option>' +
'@if($student)' +
'@foreach($student as $data)' +
'<option value="{{$data->id}}"> {{$data->student_name}}</option>' +
'@endforeach' +
'@endif' +
'</select>' +
'</div>' ;
$("more_student").append(html);
}
</script>
此代码不起作用。当我单击按钮时,没有任何反应。有人可以帮我吗?
解决方案
#
首先你之前忘记了$("#more_student").append(html);
,如果你有多个,student_profile_id
那么你必须让它像数组一样name="student_profile_id[]"
,每个控件都有唯一的id
试试这个
<script>
var students = eval({!! $student !!});
$(document).ready(function(){
$('#btn_add').click(function(){
add_row();
});
});
function add_row(){
var index = $('input[name="student_profile_id[]"]').length+1;
var html = `<div id="student_div_id`+index+`" class="form-group">
<label class="form-control-label" for="student_id">{{ __("Student") }}</label>'
<select type="text" name="student_profile_id[]" id="student_id`+index+`" class="form-control">
<option disabled selected> -- select an option -- </option>`;
$.each(students,function(ind,el)){
html+=`<option value="`+el.id+`"> `+el.student_name+`</option>`;
});
html+=`</select>
</div>`;
$("#more_student").append(html);
}
</script>
推荐阅读
- r - R - 从数据框中删除差异小于 30 天的行
- python - 如何设置按钮 (command = def()) 的输出,作为 Combobox 值的输入 =
- python - 我正在尝试使用硒,但不断收到此错误
- c# - 带有 ID 的 GET 上的 OData ASP.Net Core?
- excel - 多个数据验证表更改
- flutter - Flutter CupertinoDatePicker - 我可以交换月份和日期的位置吗?
- tensorflow - 使用 Tensorflow keras loss=tf.losses.sparse_softmax_cross_entropy 时的奇怪准确度指标
- reactjs - 如何将移动手势(例如触摸和滑动)添加到 React Bootstrap 轮播组件?
- vba - 字符串值未正确传递
- jquery - jQuery在加载下一页后执行,不是当前的