Как сделать кнопку типа ввода = действовать как гиперссылка и перенаправить с помощью запроса на получение?
Как сделать действие <input type=button>
похожим на гиперссылку и перенаправление с помощью запроса GET
?
Ответы
Ответ 1
Существует несколько способов сделать это: сначала просто поместите его в форму, указывающую на то, куда вы хотите:
<form action="/my/link/location" method="get">
<input type="submit" value="Go to my link location"
name="Submit" id="frm1_submit" />
</form>
Это имеет то преимущество, что работает даже без включенного javascript.
Во-вторых, используйте автономную кнопку с javascript:
<input type="submit" value="Go to my link location"
onclick="window.location='/my/link/location';" />
Однако это приведет к сбою в браузерах без JavaScript (обратите внимание: это эффективная действительно), вы должны использовать обработчики событий, а не встроенный код, подобный этому, - это самый простой способ иллюстрируя то, о чем я говорю.)
Третий вариант заключается в том, чтобы нарисовать фактическую ссылку как кнопку:
<style type="text/css">
.my_content_container a {
border-bottom: 1px solid #777777;
border-left: 1px solid #000000;
border-right: 1px solid #333333;
border-top: 1px solid #000000;
color: #000000;
display: block;
height: 2.5em;
padding: 0 1em;
width: 5em;
text-decoration: none;
}
// :hover and :active styles left as an exercise for the reader.
</style>
<div class="my_content_container">
<a href="/my/link/location/">Go to my link location</a>
</div>
Это имеет то преимущество, что работающая везде и означает то, что вы, скорее всего, хотите, чтобы это означало.
Ответ 2
Вы можете сделать тег <button>
, чтобы выполнить действие следующим образом:
<a href="http://www.google.com/">
<button>Visit Google</button>
</a>
или
<a href="http://www.google.com/">
<input type="button" value="Visit Google" />
</a>
Это просто и не требуется javascript!
Примечание:
Этот подход недействителен из структуры HTML. Но он работает во многих современных браузерах. См. Следующую ссылку:
Ответ 3
<script type="text/javascript">
<!--
function newPage(num) {
var url=new Array();
url[0]="http://www.htmlforums.com";
url[1]="http://www.codingforums.com.";
url[2]="http://www.w3schools.com";
url[3]="http://www.webmasterworld.com";
window.location=url[num];``
}
// -->
</script>
</head>
<body>
<form action="#">
<div id="container">
<input class="butts" type="button" value="htmlforums" onclick="newPage(0)"/>
<input class="butts" type="button" value="codingforums" onclick="newPage(1)"/>
<input class="butts" type="button" value="w3schools" onclick="newPage(2)"/>
<input class="butts" type="button" value="webmasterworld" onclick="newPage(3)"/>
</div>
</form>
</body>
Здесь другой способ, он проще другого.
<input id="inp" type="button" value="Home Page" onclick="location.href='AdminPage.jsp';" />
Это проще.
Ответ 4
Для тех, кто наткнулся на это из поиска (Google) и пытается перевести на .NET и MVC-код. (как в моем случае)
@using (Html.BeginForm("RemoveLostRolls", "Process", FormMethod.Get)) {
<input type="submit" value="Process" />
}
Это покажет кнопку с надписью "Процесс" и приведет вас к "/Process/RemoveLostRolls".
Без "FormMethod.Get" он работал, но рассматривался как "пост".
Ответ 5
Я думаю, что это ваша потребность.
a href="#" onclick="document.forms[0].submit();return false;"
Ответ 6
Не делай этого. Я мог бы хотеть управлять своей машиной на крови обезьяны. У меня есть свои причины, но иногда лучше придерживаться того, как они были спроектированы, даже если это "не совсем идеально" соответствует точному виду, на который вы едете.
В подтверждение своего аргумента я представлю следующее.
- Посмотрите, как на этом изображении отсутствует строка состояния внизу. Эта ссылка использует модель
onclick="location.href"
. (Это реальный производственный пример от моего предшественника). Это может заставить пользователей колебаться, нажимая на ссылку, поскольку они не имеют ни малейшего представления, куда он их ведет.
![Image]()
Вы также усложняете поисковую оптимизацию IMO, а также усложняете отладку и чтение вашего кода /HTML. Кнопка отправки должна отправить форму. Почему вы (сообщество разработчиков) должны пытаться создать нестандартный интерфейс?