LINUX.ORG.RU

Кнопка типа <button> - не хочет переходить по ссылке

 , ,


0

1

Имею страницу с URL:

http://site.loc/personalArea/userHoldObjects/objectCard/show/18

В ее HTML-коде есть кнопка:

<form method="POST" action="#" ... >

<button 
 id="connectRoomToEnraceToBuildingButton" 
 name="connectRoomToEnraceToBuildingButton" 
 class="btn bth-default" 
 onclick="window.location='http://site.loc/personalArea/userHoldObjects/connectRoomToEnraceToBuilding/18'">
 
 <span class="glyphicon glyphicon-th"></span> Подключить

</button>

Когда я ее нажимаю, следует переход на URL:

http://site.loc/personalArea/userHoldObjects/objectCard/show/18#

Вместо того чтобы перейти на URL:

http://site.loc/personalArea/userHoldObjects/connectRoomToEnraceToBuilding/18

Почему так происходит? Кнопка не имеет тип submit, это просто кнопка. Я даже проверил в консоли выполнение кода:
window.location='http://site.loc/personalArea/userHoldObjects/connectRoomToEnraceToBuilding/18'

Этот код выполняется, происходит правильный переход. Почему же на кнопке данный код не работает? Никакого JavaScript я на кнопку не биндил, так что даже не знаю что еще проверить.

★★★★★

onclick="window.location='http://site.loc/personalArea/userHoldObjects/connectRoomToEnraceToBuilding/18';return false"

?

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)

Может начнёшь с описания того зачем тебе это надо? Делать переход на страницу через window.location уже странновато, но использовать для этого <button> совсем уж странно.

P.S. как-то так. Можно и внутрь <form> засунуть, если надо

<a href="http://site.loc/personalArea/userHoldObjects/connectRoomToEnraceToBuilding/18" class="btn btn-primary"><span class="glyphicon glyphicon-th"></span> Подключить</a>
MrClon ★★★★★
()

так что даже не знаю что еще проверить.

Документацию проверь, пятизвёздочный, блджад.

type
The type of the button. Possible values are:
submit: The button submits the form data to the server. This is the default if the attribute is not specified, or if the attribute is dynamically changed to an empty or invalid value.

anonymous
()
<a class="btn bth-default" href="http://site.loc/personalArea/userHoldObjects/connectRoomToEnraceToBuilding/18">...</a>
goingUp ★★★★★
()
Ответ на: комментарий от MrClon

Может начнёшь с описания того зачем тебе это надо? Делать переход на страницу через window.location уже странновато, но использовать для этого <button> совсем уж странно.

А мне странно использовать для визуального объекта «кнопка, которая лежит на форме», понятие «ссылка», которая декорируется так, чтоб выглядеть как кнопка. Мне проще кнопку называть кнопкой.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

HTML это про семантику, а не про внешний вид. За внешний вид отвечает CSS. То что ты хочешь получить это нечто что в смысловом отношении является ссылкой, а значит это <a>. Выглядеть оно может как угодно, для HTML это не важно

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Для меня семантика формы - это то что есть на форме. Если на форме есть кнопка, то это кнопка. Если на форме есть ссылка, то это ссылка.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

То что ты пытаешься сделать это и есть ссылка. Хотя бы и на форме. То что она выглядит как кнопка — не имеет никакого значения. Ты используешь JS-костыль чтобы заставить кнопку работать как ссылку. Вариант предложенный @goingUp и мной будет работать даже без JS и CSS, в любой lynx, с любым экзотическим софтом

MrClon ★★★★★
()

За ссылки кнопками в приличном обществе бьют канделяброй. К примеру, ты только что сломал миддл-клик по этой ссылке.

anonymous
()
Ответ на: комментарий от MrClon

То что она выглядит как кнопка — не имеет никакого значения.

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

Представь, что HTML вдруг допилили, и у button появился атрибут href. Что ты будешь использовать для кнопки? Тег <a> или тег <button>?


даже без JS и CSS, в любой lynx, с любым экзотическим софтом

Моя целевая аудитория это не оценит.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от anonymous

К примеру, ты только что сломал миддл-клик по этой ссылке.

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

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Для меня имеет

Не думал о том чтобы реализовать своё что-там-у-тебя средствами других технологий? Веб и без твоей помощи достаточно ужасен.

Говорят в мобильной разработке денег поболее будет, задумайся

MrClon ★★★★★
()
Ответ на: комментарий от Xintrea

Представь, что HTML вдруг допилили, и у button появился атрибут href.

А зачем батону атрибут href?

Что ты будешь использовать для кнопки? Тег <a> или тег <button>?

Для кнопки буду использовать <button>, для ссылки — <a>.

Grzegorz
()
Ответ на: комментарий от MrClon

Не думал о том чтобы реализовать своё что-там-у-тебя средствами других технологий?

Узнаю Лор, классика.


Веб и без твоей помощи достаточно ужасен.

Я вебу никак не помогаю, повлиять на него я не могу.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Представь, что HTML вдруг допилили, и у button появился атрибут href. Что ты будешь использовать для кнопки? Тег <a> или тег <button>?

Не появится. В XHTML2 хотели добавить всем элементам и где он теперь?

Не делай херню, послушай что тебе говорят.

anonymous
()
Ответ на: комментарий от Grzegorz

А зачем батону атрибут href?

Одолжи лоровскую машину времени, слетай в девяностые, там тебе объяснят. И ещё объяснят зачем нужны <font>

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Ты можешь ему не мешать

Думаю, веб стерпит мои потуги. Он и не такое видывал. Не переживай за веб.

https://www.youtube.com/watch?v=Los3__U67z4

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 2)
Ответ на: комментарий от Xintrea

Я поражаюсь вашему упорству. Вам открыто сказали несколько людей, что то, что вы делаете - неверно. Нет, я художник, я так вижу. Кроме того, не очень компетентный художник, судя по всему.

Надеюсь, никогда не столкнусь с вашим творчеством.

anonymous
()
Ответ на: комментарий от anonymous

Не забывай про назад/вперёд.

Какая разница, как меняется URL страницы. Назад-вперед прекрасно работает.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Я поражаюсь вашему упорству. Вам открыто сказали несколько людей, что то, что вы делаете - неверно. Нет, я художник, я так вижу. Кроме того, не очень компетентный художник, судя по всему. Надеюсь, никогда не столкнусь с вашим творчеством.

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

Жду не дождусь, когда уже на лоре автор темы сможет банить таких лентяев и пустоголовых критиков как вы.

Один только MrClon попытался что-то сформулировать в двух предложениях. Но тема семантики обширна и спорна, чтобы вместиться в 250 символов.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от php-master

А не проще было сразу указать нужный адрес в action для формы?

На форме может быть несколько кнопок, которые выполняют различные действия.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

На форме может быть несколько кнопок, которые выполняют различные действия.

Ты документацию прочитал? formaction кому?

anonymous
()

Почитай про accessibility в вэбе. Тогда станит понятней зачем придумали семантический html

anonymous
()
Ответ на: комментарий от Xintrea

Так вам же рассказали уже, что не так, и отметили отсутствие знаний документации.

Я считаю, вам лучше в дворники.

anonymous
()
Ответ на: комментарий от MrClon

Не всем нужно accessibility в вэбе

Гениально, чо. Пандусы для инвалидных колясок тоже нужны не всем, а только минорщине.

anonymous
()
Ответ на: комментарий от Xintrea

Правильное решение тебе уже дважды предложили, до кучи предлажили костыль, и дали объяснение почему исходный код не работает. Теперь остаётся только обсуждать твою упоротость, остальные возможности этой темы исчерпаны

MrClon ★★★★★
()
Ответ на: комментарий от Xintrea

Жду не дождусь, когда уже на лоре автор темы сможет банить таких лентяев и пустоголовых критиков как вы.

Свали на стековерфлоу. Хотя про дворника анон тоже неплохо предложил

MrClon ★★★★★
()
Ответ на: комментарий от Xintrea

Моя целевая аудитория это не оценит.

Уверен? Готов отсечь пользователей, отключающих JS или просто пользователей старых браузеров?

Когда в на pass.rzd.ru ломают поиск поездов в не самых последних версиях Firefox, я просто плююсь, но от тебя, честно говоря, такого не ожидал.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от Xintrea

Жду не дождусь, когда уже на лоре автор темы сможет банить таких лентяев и пустоголовых критиков как вы.

Приехали.

anonymous
()

Кнопка типа <button> - не хочет переходить по ссылке

Зайдём с обратного: ссылка типа <a> не хочет сабмитить форму.

deep-purple ★★★★★
()
Ответ на: комментарий от MrClon

Очевидно нужно использовать для таких целей то, что для них предназначено, а не заниматься вырыванием зубов через задний проход.

deep-purple ★★★★★
()
Ответ на: комментарий от hobbit

Уверен? Готов отсечь пользователей, отключающих JS или просто пользователей старых браузеров?

Да, готов отсечь пользователей, отключающих JS (на что они надеются при использовании веб-приложения?). И готов отсечь любителей links/lynx (веб-приложение на такие браузеры не расчитыватеся).


Когда в на pass.rzd.ru ломают поиск поездов в не самых последних версиях Firefox, я просто плююсь, но от тебя, честно говоря, такого не ожидал.

Узпакойся, мои веб-приложения работают и в древних браузерах.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Не, это слишком вменяемо, не webmonkey-way

MrClon ★★★★★
()
Ответ на: комментарий от Xintrea

на что они надеются при использовании веб-приложения?

Что у тебя за приложение? Карта? Диаграммы? 3д?

Они надеются, что ты не мудак и не будешь ради одной формы тащить жабоскрипт.

anonymous
()
Ответ на: комментарий от MrClon

Покажи, как стилизовать ссылку под стандартную кнопку, чтобы на 100% была неотличима на всех браузерах.

Legioner ★★★★★
()
Ответ на: комментарий от Xintrea

Но тема семантики обширна и спорна

Да пофиг на семантику, ты напердолил неработающего жабоскрипта вместо того чтобы тупо воспользоваться готовым тегом. Как уже подметили, мог бы хотя бы action формы нормально указать для приличия.

Grzegorz
()
Ответ на: комментарий от Legioner

class="btn btn-primary". У ТСа bootstrap же.

Вообще обычно у людей у которых возникает желание создать кнопку которая реализует поведение ссылки, за одно возникает желание отредизайнить стандартные виджеты чтобы они выглядели одинаково во всех браузерах

P.S. компромисный вариант, вроде должен работать:

<a href="/some"><button type="button">Жмакай</button></a>
MrClon ★★★★★
()
Ответ на: комментарий от anonymous

Ну дык, это костыль для тому нормальный вариант недостаточно костыльный

MrClon ★★★★★
()
Ответ на: комментарий от Grzegorz

С каких пор window.location не работает в яваскрипте?

Как уже подметили, мог бы хотя бы action формы нормально указать для приличия.

Все приличные интерфейсы уже давно не имеют кнопки submit, а значения запоминаются по ходу их изменения, через AJAX. Кнопки форм ведут на разные страницы, поэтому единственным action не обойдешься. В таком окружении формы нужны только для того, чтобы правильно срабатывали CSS-стили.

По сути, формы нынче применимы лишь в одном узком сегменте: если есть форма ввода данных и есть кнопка отправки данных. Вот тогда нужно и action прописать и submit сделать. Я вижу, вам это сложно понять, но тем не менее это так.

Мне, кстати, не нравятся интерфейсы без кнопок OK и Cancel, но современные UI дезигнеры сделали интерфейсы «без подтверждения» стандартом де факто. Посмотрите на тот же Гном, в нем уже сколько лет только кнопка «Отмена» на окнах ввода, кнопок вида «Ок» или там «Применить» нету в принципе. То же самое и в вебе происходит.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Это происходит только с теми, у кого мак головного мозга. Беги оттуда.

anonymous
()
Ответ на: комментарий от Xintrea

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

А чему тут поражаться если ты действительно все делаешь не так? Если вещь делает при клике переход по ссылке - это ссылка. То что она выглядит как кнопка вопрос десятый.

вы уже начали обсуждать компетентность топикстартера

Компетентность нулевая

abs ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.