Nano Hash - криптовалюты, майнинг, программирование

IE9 вложенный simple_form_for с haml

У меня есть страница, которая начинается с формы. Внутри этой формы я отображаю другую страницу, называемую информацией. Внутри этого рендера у меня есть еще один рендер для модального окна. Этот модал является другой формой. Итак, на данный момент у меня есть одна вложенная форма. Это прекрасно работает во всех браузерах, кроме IE9. Я думаю, что IE9 пытается сделать, он видит, когда заканчивается вторая форма, и он также заканчивает первую форму, поэтому все, что находится после вложенной формы, испорчено. Кто-нибудь еще столкнулся с этой проблемой? и как вы это исправляете?

Родительский файл (форма):

= simple_form_for @form do |f|
    #the_form
        = render 'information', :f => f

        .buttons
            %input{:name => "submit", :type => "submit", :value => "SUBMIT"}
            %input{:name => "cancel", :type => "submit", :value => "Cancel"}

Файл с информацией о рендере:

#information
    %fieldset
        %legend
            Form Title
        = f.input :form_id, :url => form_name_path, :label => 'Field Name'
        = render 'modal'
    (the rest of the code here breaks)...

Отобразить модальный файл:

.modal.hide.fade
    .modalBox
        %h3
            New Form Name
            %a{href: "#", class: "x", title: "Close" : 'data-dismiss' => "modal"}
        .diagRepeater
        .modal-body
            = simple_form_for Form.new, :url => {:controller => :form, :action => :modal_create} do |o|
                =o.input :name, :label => 'Name', :required => true
                =o.input :form_id, :as => :hidden

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



Ответы:


1

HTML не поддерживает вложенную форму. На странице может быть несколько форм, но они не должны быть вложенными. Как вы говорите: это прекрасно работает во всех браузерах, для меня это чудо, потому что «у вас даже будут проблемы с тем, чтобы заставить его работать в разных версиях одного и того же браузера», поэтому избегайте этого.

Webkit объясняет, почему HTML не поддерживает вложенную форму

bool HTMLParser::formCreateErrorCheck(Token* t, RefPtr<Node>& result)
{
    // Only create a new form if we're not already inside one.
    // This is consistent with other browsers' behavior.
    if (!m_currentFormElement) {
        m_currentFormElement = new HTMLFormElement(formTag, m_document);
        result = m_currentFormElement;
        pCloserCreateErrorCheck(t, result);
    }
    return false;
}
09.10.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..