Laravel - PHP - Невозможно переключить две формы в одном представлении

У меня единственный вид dashboard.blade.php.

У него несколько форм. Я установил атрибут данных data-toggle='collapse в элементе <a>.

Это работает правильно для одной формы при использовании метода стрелка вниз на клавиатуре.

При повторном нажатии на этот arrow первая форма скроется из поля зрения.

Однако, когда я нажимаю на второй <a>, когда первая форма уже открыта, обе формы отображаются одновременно.

Мне нужно управлять этим, чтобы отображать форму один за раз и Спрятать другую форму, щелкнув следующую форму.

Ниже мой код (dashboard.blade.php).

Первая форма:

<div class = "panel">
    <div class = "panel-heading" role = "tab" id = "headingTwo">
        <h4 class = "panel-title">
            <a data-toggle = "collapse"
               data-parent = "#accordion3"
               href = "#collapseTwo3"
               aria-expanded = "false"
               aria-controls = "collapseTwo3"
               data-expandable = "false"><i class = "material-icons pmd-sm pmd-accordion-icon-left">toys</i>Brands
                <i class = "material-icons md-dark pmd-sm pmd-accordion-arrow">keyboard_arrow_down</i></a>
        </h4>
    </div>
    <div id = "collapseTwo3" class = "panel-collapse collapse" role = "tabpanel" aria-labelledby = "headingTwo">
        <div class = "panel-body">
            <form class = "form-horizontal"
                  method = "post"
                  enctype = "multipart/form-data"
                  action = "{{ url('importBrands') }}">

                {{ csrf_field() }}

                <div class = "form-group files">
                    <label>Upload Your File</label>
                    <input type = "file" name = "import_file" />
                </div>
                <div align = "right">
                    <!-- <button class = "btn btn-primary">Export</button> -->
                    <button class = "btn btn-primary">Import</button>
                </div>
            </form>
        </div>
    </div>
</div>

Вторая форма:

<div class = "panel">
    <div class = "panel-heading" role = "tab" id = "headingThree">
        <h4 class = "panel-title">
            <a data-toggle = "collapse"
               data-parent = "#accordion3"
               href = "#collapseThree3"
               aria-expanded = "false"
               aria-controls = "collapseThree3"
               data-expandable = "false"><i class = "material-icons pmd-sm pmd-accordion-icon-left">category</i>Categories
                <i class = "material-icons md-dark pmd-sm pmd-accordion-arrow">keyboard_arrow_down</i></a>
        </h4>
    </div>
    <div id = "collapseThree3" class = "panel-collapse collapse" role = "tabpanel" aria-labelledby = "headingThree">
        <div class = "panel-body">
            <form class = "form-horizontal"
                  method = "post"
                  enctype = "multipart/form-data"
                  action = "{{ url('importCategories') }}">

                {{ csrf_field() }}

                <div class = "form-group files">
                    <label>Upload Your File</label>
                    <input type = "file" name = "import_file" />
                </div>
                <div align = "right">
                    <!-- <button class = "btn btn-primary">Export</button> -->
                    <button class = "btn btn-primary">Import</button>
                </div>
            </form>
        </div>
    </div>
</div>

material.js

var FloatingLabel = function ($$$1) {
    // constants >>>
    var DATA_KEY = 'md.floatinglabel';
    var EVENT_KEY = "." + DATA_KEY;
    var NAME = 'floatinglabel';
    var NO_CONFLICT = $$$1.fn[NAME];
    var ClassName = {
      IS_FOCUSED: 'is-focused',
      HAS_VALUE: 'has-value'
    };
    var Event = {
      CHANGE: "change" + EVENT_KEY,
      FOCUSIN: "focusin" + EVENT_KEY,
      FOCUSOUT: "focusout" + EVENT_KEY
    };
    var Selector = {
      DATA_PARENT: '.floating-label',
      DATA_TOGGLE: '.floating-label .custom-select, .floating-label .form-control' // <<< constants

    };

    var FloatingLabel =
    /*#__PURE__*/
    function () {
      function FloatingLabel(element) {
        this._element = element;
        this._parent = $$$1(element).closest(Selector.DATA_PARENT)[0];
      }

      var _proto = FloatingLabel.prototype;

      _proto.change = function change() {
        if ($$$1(this._element).val() || $$$1(this._element).is('select') && $$$1('option:first-child', $$$1(this._element)).html().replace(' ', '') !== '') {
          $$$1(this._parent).addClass(ClassName.HAS_VALUE);
        } else {
          $$$1(this._parent).removeClass(ClassName.HAS_VALUE);
        }
      };

      _proto.focusin = function focusin() {
        $$$1(this._parent).addClass(ClassName.IS_FOCUSED);
      };

      _proto.focusout = function focusout() {
        $$$1(this._parent).removeClass(ClassName.IS_FOCUSED);
      };

      FloatingLabel._jQueryInterface = function _jQueryInterface(event) {
        return this.each(function () {
          var _event = event ? event : 'change';

          var data = $$$1(this).data(DATA_KEY);

          if (!data) {
            data = new FloatingLabel(this);
            $$$1(this).data(DATA_KEY, data);
          }

          if (typeof _event === 'string') {
            if (typeof data[_event] === 'undefined') {
              throw new Error("No method named \"" + _event + "\"");
            }

            data[_event]();
          }
        });
      };

      return FloatingLabel;
    }();

    $$$1(document).on(Event.CHANGE + " " + Event.FOCUSIN + " " + Event.FOCUSOUT, Selector.DATA_TOGGLE, function (event) {
      FloatingLabel._jQueryInterface.call($$$1(this), event.type);
    });
    $$$1.fn[NAME] = FloatingLabel._jQueryInterface;
    $$$1.fn[NAME].Constructor = FloatingLabel;

    $$$1.fn[NAME].noConflict = function () {
      $$$1.fn[NAME] = NO_CONFLICT;
      return FloatingLabel._jQueryInterface;
    };

    return FloatingLabel;
  }($);

Я предполагаю, что вы справляетесь с этим с помощью Javascript? Если да, добавьте этот код.

Magnus Eriksson 10.10.2018 12:47
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
568
1

Ответы 1

I think, you forget the add the few lines in your code.( Adding Some Line in Your Code)

   <div class = "panel-group" id = "accordion3">
        paste your code here
   </div>

Simple solution using Bootstraps framework.(Full Example)

 <div class = "panel-group" id = "accordion">
<div class = "panel panel-default">
  <div class = "panel-heading">
    <h4 class = "panel-title">
      <a data-toggle = "collapse" data-parent = "#accordion" href = "#collapse1">Collapsible Group 1</a>
    </h4>
  </div>
  <div id = "collapse1" class = "panel-collapse collapse in">
    <div class = "panel-body"> First Form Html </div>
  </div>
</div>
<div class = "panel panel-default">
  <div class = "panel-heading">
    <h4 class = "panel-title">
      <a data-toggle = "collapse" data-parent = "#accordion" href = "#collapse2">Collapsible Group 2</a>
    </h4>
  </div>
  <div id = "collapse2" class = "panel-collapse collapse">
     <div class = "panel-body"> Second Form Html </div>
  </div>
</div>
<div class = "panel panel-default">
  <div class = "panel-heading">
    <h4 class = "panel-title">
      <a data-toggle = "collapse" data-parent = "#accordion" href = "#collapse3">Collapsible Group 3</a>
    </h4>
  </div>
  <div id = "collapse3" class = "panel-collapse collapse">
      <div class = "panel-body"> Third Form Html </div>
  </div>
</div>

Спасибо @Raman. У меня это сработало. Но формы с несколькими столбцами должны иметь больше обновлений.

Nuwan Withanage 12.10.2018 08:47

Другие вопросы по теме