Существует известная ошибка в npm update yarn -g
, это связанная с ним проблема github , поэтому вы должны использовать вместо этого
npm install -g yarn
или установить сначала brew
, а не обновление через brew
, например,
brew upgrade yarn
, если вы используете окна, вы можете найти brew
альтернатив и обновить корыто с помощью них.
choco upgrade yarn
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. Проблема с использованием таких подходов состоит в том, что поведение Вашего кода теперь не гарантируется через браузеры. (так как это не стандартно)
Как другие сказали, это не допустимый HTML.
Это походит на Ваш, делают это для расположения форм визуально друг в друге. Если это так, просто сделайте две отдельных формы и используйте CSS для расположения их.
Нет, спецификация HTML указывает, что никакой FORM
элемент должен содержать другой FORM
элемент.
скорее используйте пользовательский метод 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>
Можно ответить собственный вопрос очень легко путем ввода HTML-кода в Блок проверки допустимости W3 . (Это показывает поле ввода текста, Вы не должны будете даже помещать свой код сервера...)
(И не, это не проверит.)
Нет, это не допустимо, но можно обмануть внутреннюю позицию формы на 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.: необходимо будет играть с числами, чтобы заставить его выглядеть хорошим.
HTML 4.x и HTML5 запрещают вложенные формы, но HTML5 разрешает обходной путь с атрибутом «форма» («владелец формы»).
Что касается HTML 4.x, вы можете: