name-select-form.blade.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. ?>
  3. <style type="text/css">
  4. </style>
  5. <div class="layui-form-item {{ $errors->has('device_name_id') ? 'has-error' : '' }}">
  6. <label class="layui-form-label" style="padding: 0px;">设备名称</label>
  7. <div class="layui-input-block">
  8. <select name="device_name_id" lay-filter="device_name_id">
  9. @foreach($options as $option)
  10. <option value="{{$option->value}}" {{$option->value == $device_name_id ? 'selected' : ''}}>{{$option->text}}</option>
  11. @endforeach
  12. </select>
  13. @if($errors->has('device_name_id'))
  14. <span class="help-block">{{ $errors->first('device_name_id') }}</span>
  15. @endif
  16. </div>
  17. @if($errors->has('device_name_id'))
  18. <span class="help-block">{{ $errors->first('device_name_id') }}</span>
  19. @endif
  20. </div>
  21. {{--@if(!isset($hide_spec))--}}
  22. {{--<div class="layui-form-item {{ $errors->has('spec_id') ? 'has-error' : '' }}">--}}
  23. {{--<label class="layui-form-label" style="padding: 0px;">规格型号</label>--}}
  24. {{--<div class="layui-input-block">--}}
  25. {{--<select name="spec_id" lay-filter="spec_id">--}}
  26. {{--</select>--}}
  27. {{--<text name="spec_id" lay-filter="spec_id"></text>--}}
  28. {{--@if($errors->has('spec_id'))--}}
  29. {{--<span class="help-block">{{ $errors->first('spec_id') }}</span>--}}
  30. {{--@endif--}}
  31. {{--</div>--}}
  32. {{--</div>--}}
  33. {{--@endif--}}
  34. <script>
  35. $(function() {
  36. layui.use(['form'], function() {
  37. let form = layui.form;
  38. let device_names = JSON.parse('{!! $options !!}');
  39. let specs = [];
  40. let device_name_id = '{{ $device_name_id }}';
  41. {{--let spec_id = '{{ $spec_id }}';--}}
  42. {{--let hide_spec = '{{ isset($hide_spec) ? "yes" : "no" }}';--}}
  43. // console.log(hide_spec)
  44. form.on('select(device_name_id)', function(data) {
  45. device_name_id = data.value;
  46. spec_id = '';
  47. updateSpec()
  48. });
  49. updateSpec();
  50. function updateSpec() {
  51. let name_index = getIndex(device_names, device_name_id);
  52. specs = device_names[name_index].specs;
  53. let options = '';
  54. for(let i = 0; i < specs.length; ++i) {
  55. options += '<option value=' + specs[i].value + (parseInt(specs[i].value) === parseInt(spec_id) ? ' selected' : '') + '>' + specs[i].text + '</option>'
  56. }
  57. $("select[name='spec_id']").html(options);
  58. form.render('select');
  59. }
  60. function getIndex(list, id) {
  61. id = parseInt(id);
  62. for(var i = 0; i < list.length; ++i) {
  63. if(list[i].value === id) return i;
  64. }
  65. return 0;
  66. }
  67. })
  68. })
  69. </script>