Действительно ли это допустимо, чтобы иметь форму HTML в другой форме HTML?

Существует известная ошибка в npm update yarn -g, это связанная с ним проблема github , поэтому вы должны использовать вместо этого

npm install -g yarn

или установить сначала brew, а не обновление через brew, например,

brew upgrade yarn

, если вы используете окна, вы можете найти brew альтернатив и обновить корыто с помощью них.

choco upgrade yarn

312
задан allyourcode 16 May 2013 в 10:45
поделиться

8 ответов

A. Это не допустимый HTML, ни XHTML

В официальной спецификации W3C XHTML, Раздел B. "Запреты на элемент", указывает что:

"form must not contain other form elements."

http://www.w3.org/TR/xhtml1/#prohibitions

Что касается более старого спецификация HTML 3.2, раздел по элементу ФОРМ указывает что:

"Каждая форма должна быть включена в элементе ФОРМЫ. В едином документе может быть несколько форм, но элемент ФОРМЫ не может быть вложен".

B. Обходное решение

существуют обходные решения с помощью JavaScript, не будучи должен вложить теги form.

, "Как создать вложенную форму". (несмотря на заголовок это не вложенные теги form, но обходное решение JavaScript).

Ответы на этот вопрос о StackOverflow

Примечание: , Хотя можно обмануть Блоки проверки допустимости W3C для передачи страницы путем управления DOM с помощью сценариев, это все еще не легальный HTML. Проблема с использованием таких подходов состоит в том, что поведение Вашего кода теперь не гарантируется через браузеры. (так как это не стандартно)

360
ответ дан Luke 23 November 2019 в 01:10
поделиться

Как другие сказали, это не допустимый HTML.

Это походит на Ваш, делают это для расположения форм визуально друг в друге. Если это так, просто сделайте две отдельных формы и используйте CSS для расположения их.

13
ответ дан user64075 23 November 2019 в 01:10
поделиться

Нет, спецификация HTML указывает, что никакой FORM элемент должен содержать другой FORM элемент.

7
ответ дан Munam Yousuf 23 November 2019 в 01:10
поделиться

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

, например,

<html>
    <head>
        <script language="javascript" type="text/javascript">
        var input1 = null;
        var input2 = null;
        function InitInputs() {
            if (input1 == null) {
                input1 = document.getElementById("input1");
            }
            if (input2 == null) {
                input2 = document.getElementById("input2");
            }

            if (input1 == null) {
                alert("input1 missing");
            }
            if (input2 == null) {
                alert("input2 missing");
            }
        }
        function myMethod1() {
            InitInputs();
            alert(input1.value + " " + input2.value);
        }
        function myMethod2() {
            InitInputs();
            alert(input1.value);
        }
        </script>
    </head>
    <body>
        <form action="javascript:myMethod1();">
            <input id="input1" type="text" />
            <input id="input2" type="text" />
            <input type="button" onclick="myMethod2()" value="myMethod2"/>
            <input type="submit" value="myMethod1" />
        </form>
    </body>
</html>
6
ответ дан Andreas Niedermair 23 November 2019 в 01:10
поделиться

нет, см. w3c

4
ответ дан tliff 23 November 2019 в 01:10
поделиться

Можно ответить собственный вопрос очень легко путем ввода HTML-кода в Блок проверки допустимости W3 . (Это показывает поле ввода текста, Вы не должны будете даже помещать свой код сервера...)

(И не, это не проверит.)

5
ответ дан Christian Studer 23 November 2019 в 01:10
поделиться

Нет, это не допустимо, но можно обмануть внутреннюю позицию формы на HTML со справкой CSS и jQuery использование. Сначала создайте некоторое контейнерное отделение в своей родительской форме и затем в любом другом месте на странице отделение с Вашей дочерней (внутренней) формой:

<form action="a">
    <input.../>
    <div class="row" id="other_form_container"></div>
    <input.../>
</form>

....

<div class="row" id="other_form">
    <form action="b">
        <input.../>
        <input.../>
        <input.../>
    </form>
</div>

Дают Вашему контейнерному отделению некоторую стабильную высоту

<style>
  #other_form_container {
    height:90px;
    position:relative;
  }
</style> 

Благодарность прием "other_form" положение относительно контейнерному отделению

<script>
  $(document).ready(function() {
    var pos = $("#other_form_container").position();
    $("#other_form").css({
      position: "absolute",
      top: pos.top - 40,
      left: pos.left + 7,
      width: 500,
    }).show();
  });
</script>

P.S.: необходимо будет играть с числами, чтобы заставить его выглядеть хорошим.

0
ответ дан 23 November 2019 в 01:10
поделиться

HTML 4.x и HTML5 запрещают вложенные формы, но HTML5 разрешает обходной путь с атрибутом «форма» («владелец формы»).

Что касается HTML 4.x, вы можете:

  1. Использовать дополнительную форму (ы) только со скрытыми полями и JavaScript, чтобы задать параметры ввода и отправить форму.
  2. Используйте CSS, чтобы выровнять несколько HTML-форм, чтобы они выглядели как единое целое, но я думаю, что это слишком сложно.
25
ответ дан 23 November 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: