Jump to content
  • 0

Кнопка submit вне формы


hike
 Share

Question

Здравствуйте! Хотелось бы получить ответ на вопрос, как с помощью стилей или других средств поместить кнопку submit в самом низу страницы по центру (над футером), но так, чтобы при ее нажатии на сервер отправлялись данные, введенные в форму в правой колонке страницы (двухколонный фиксированный макет). Никак не могу сообразить, пожалуйста, подскажите.

Link to comment
Share on other sites

22 answers to this question

Recommended Posts

  • 0

если на странице имеется только одна форма, можно не париться и использовать form как wraper для всего сайта

но самое простое сделать js: обработчик onclick="form.submit();"

Link to comment
Share on other sites

  • 0

Действительно, очень жаль, IE и Safari не поддерживают атрибут form тега button.

JavaScript пока знаю слабо, а вот сделать form оберткой - отличный выход. Спасибо.

Большое спасибо всем за ответы!

Link to comment
Share on other sites

  • 0

hike, возможно, с данной вёрсткой не очень: http://jsfiddle.net/zgXUY/ - лучше скопипастить и запустить отдельно, но по перезагрузке странице видно, что отправка формы происходит

Link to comment
Share on other sites

  • 0

hike, возможно, с данной вёрсткой не очень: http://jsfiddle.net/zgXUY/ - лучше скопипастить и запустить отдельно, но по перезагрузке странице видно, что отправка формы происходит

А насколько вообще такой вариант правильный? Я думала, что тег <label> должен размещаться внутри <form>, но валидацию пример с <label> вне контейнера <form> проходит.

Link to comment
Share on other sites

  • 0

если на странице нет больше прочих форм и не предвидится - тупо обернуть все возможное тегом FORM, понимаю, в лоб и топорно, но аще кроссбраузерно при любом доктайпе. Ну вдруг там горит и надо запустить а потом есть время эксперементировать :) (я так иногда делаю :))

Link to comment
Share on other sites

  • 0

Catherine, не нашёл упоминаний о том, что label обязательно должен находиться внутри form. Полагаю, что трюк с for придумали специально для тех случаев, когда label и связываемый элемент формы находятся далеко друг от друга. Вобщем, если работает, думаю, не стОит особо заморачиваться, баг это или фича

Link to comment
Share on other sites

  • 0

Catherine, не нашёл упоминаний о том, что label обязательно должен находиться внутри form. Полагаю, что трюк с for придумали специально для тех случаев, когда label и связываемый элемент формы находятся далеко друг от друга. Вобщем, если работает, думаю, не стОит особо заморачиваться, баг это или фича

Вот и я не нашла упоминаний о том, что label должен находиться именно внутри form. Так что хочется верить, что это все-таки фича, но без теоретического подтверждения использовать в самом крайнем случае и с осторожностью ;)

Link to comment
Share on other sites

  • 0

По общей логике, инпуты, а значит и лейблы, не обязаны находиться в форме - они могут быть частью чисто клиентского приложения, данные которого никуда сабмитить не надо (как минимум, в HTML4 это разрешалось - "The elements used to create controls generally appear inside a FORM element, but may also appear outside of a FORM element declaration when they are used to build user interfaces"). Так что решение не только остроумное, но и вполне надежное. Но лучше, конечно, продумывать логику страницы так, чтобы оторванных от родной формы контролов было как можно меньше! :)

  • Like 1
Link to comment
Share on other sites

  • 0

Вариант со связкой через атрибут for не удался, а жаль.

Да, получилось, но не всё.. IE8 не хочет прятать кнопку свойством opacity, а IE7 не дает оформлять метку. Только IE9 делает все как надо.

Link to comment
Share on other sites

  • 0
Попробуйте вариант со связкой невидимого сабмита и <label for="">
hike, возможно, с данной вёрсткой не очень: http://jsfiddle.net/zgXUY/ - лучше скопипастить и запустить отдельно, но по перезагрузке странице видно, что отправка формы происходит

Скажите, а в этом варианте можно сделать, чтобы форма отправлялась по нажатию Enter, а не только по щелчку мыши?

Link to comment
Share on other sites

  • 0
Попробуйте вариант со связкой невидимого сабмита и <label for="">
hike, возможно, с данной вёрсткой не очень: http://jsfiddle.net/zgXUY/ - лучше скопипастить и запустить отдельно, но по перезагрузке странице видно, что отправка формы происходит

Скажите, а в этом варианте можно сделать, чтобы форма отправлялась по нажатию Enter, а не только по щелчку мыши?

По-моему это на автомате стоит.

Если нет, то JS

Link to comment
Share on other sites

  • 0

JS - Может не совсем точно, но по логике, вроде, так -

document.forms['name'].onkeypress=function(event){
event = event || window.event;
if(event.which == "13") {document.forms['name'].submit()}
}

Кстати, если добавить ещё на мышку, можно только этим и обойтись - без label и атрибута form.

Хотя, если на автомате (а по-моему это скорее всего так), можно и вообще без кнопки. Ну смотря от дизайна, конечно, как там всё. На край - дописать, чтоб жмякали Enter...

Edited by alexandr_v-vich
Link to comment
Share on other sites

  • 0

Да, вы правы, работает, но, увы, фокус на метку не попадает, либо tabindex - метка в фокусе, но enter не срабатывает. А как еще спрятать кнопку, кроме opacity?

hike, отправка по Ентеру работает, конечно, если форма в фокусе

Для старых ИЕ прозрачность можно пофиксить методом тут, внизу

Также не забывайте про http://htmlbook.ru/css/visibility

Спасибо за ответ.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy