делает кнопку отправки, должны содержаться в форме

Я хочу, чтобы моя кнопка отправки была расположена где-нибудь это вне моего элемента формы? У меня есть какие-либо опции? За исключением jQuery.

Спасибо, rodchar

8
задан Rod 7 May 2010 в 03:20
поделиться

6 ответов

Это обычная ситуация. Думаю, это подойдет (не тестировал):

<form id="form1" action="someAction.cgi" method="GET">
    <!-- other fields go here -->
</form>
<form id="form2" action="someOtherAction.cgi" method="GET">
    <!-- other fields go here -->
</form>

<form>
    <input value="Form One" type="button"
        onclick="document.getElementById('form1').submit();"/>
    <input value="Form Two" type="button"
        onclick="document.getElementById('form2').submit();"/>
</form>

Я не уверен, нужна ли вам последняя

. Я помню, как браузеры игнорировали события, если кнопка не была в форме .

1
ответ дан 5 December 2019 в 12:08
поделиться

Да, структурно кнопка отправки должна находиться внутри элемента формы, чтобы документ был валидным X/HTML. Но визуально вы можете расположить кнопку отправки в любом месте с помощью соответствующих CSS (float, абсолютное/относительное позиционирование и т.д.). Вы также можете написать JavaScript, который будет вызывать отправку формы и привязывать ее к другому элементу.

2
ответ дан 5 December 2019 в 12:08
поделиться

Это другой тип ответа, более четкий ответ от egrunin answer

    <form id="form1" name="form1" action="someAction.cgi" method="GET">
        <!-- other fields go here -->
    </form>
    <form id="form2" name="form2" action="someOtherAction.cgi" method="GET">
        <!-- other fields go here -->
    </form>

    Calling by form id:
    <form>
        <input value="Form One" type="button"
            onclick="document.getElementById('form1').submit();"/>
        <input value="Form Two" type="button"
            onclick="document.getElementById('form2').submit();"/>
    </form>

or Calling by form name:

    <form>
        <input value="Form One" type="button"
            onclick="document.form1.submit();"/>
        <input value="Form Two" type="button"
            onclick="document.form2.submit();"/>
    </form>
0
ответ дан 5 December 2019 в 12:08
поделиться

Другой подход к этому - просто установить атрибут form на кнопку:

<form id="first">
    <input type="submit" form="second" value="Submit Second" />
</form>
<form id="second">
    <input type="submit" form="first" value="Submit First" />
</form>

Fiddle: http://jsfiddle.net/52wgc2ym/


Оригинальный ответ

Естественное поведение кнопки submit заключается в том, чтобы отправить ближайшую форму вверх по иерархии. Единственный другой способ заставить кнопку отправить форму, в которой она не находится, - это использовать JavaScript (чем, по сути, и является jQuery).

При необходимости вы можете переместить кнопку отправки так, чтобы она отображалась так, как будто она не находится в форме визуально при отображении страницы. Это можно сделать с помощью CSS, что может дать желаемый результат (результаты).

5
ответ дан 5 December 2019 в 12:08
поделиться

Да, кнопка отправки должна находиться внутри формы.

Во всяком случае, мне кажется странным хотеть этого по-другому. Какой был бы смысл, если бы элементы управления вводом находились в одном месте на странице, а кнопка отправки была waaay где-то еще?

4
ответ дан 5 December 2019 в 12:08
поделиться

Входные данные типа submit имеют смысл только как дочерние элементы элементов . Но я уверен, что используя CSS, вы можете разместить его где угодно. Помните, что элементы формы «невидимы», поэтому просто разверните теги вокруг большей части вашего контента, и все будет в порядке. Вот документация по формам для HTML4 , она все еще актуальна.

2
ответ дан 5 December 2019 в 12:08
поделиться
Другие вопросы по тегам:

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