Как удалить завершающий вопросительный знак из формы GET без полей?
Пример:
<form>
<input type='submit'>
</form>
Когда представлены результаты в:
http://example.com/?
Как это сделать:
http://example.com/
?
[Это очень простой пример проблемы, фактическая форма имеет много полей, но некоторые из них иногда отключены. Когда все отключены, трейлинг? ] появляется
Ответы
Ответ 1
В моем случае я использую window.location, не уверен, что это лучшая альтернатива, но это единственное, что я мог бы заставить его работать:
$('#myform').submit(function()
{
... if all parameters are empty
window.location = this.action;
return false;
});
Мое реальное использование заключалось в том, чтобы преобразовать параметр GET в реальные URL-адреса, так что вот полный код:
$('#myform').submit(function()
{
var form = $(this),
paths = [];
// get paths
form.find('select').each(function()
{
var self = $(this),
value = self.val();
if (value)
paths[paths.length] = value;
// always disable to prevent edge cases
self.prop('disabled', true);
});
if (paths.length)
this.action += paths.join('/')+'/';
window.location = this.action;
return false;
});
Ответ 2
Я искал аналогичный ответ. То, что я закончил, было создание кнопки, которая перенаправляется на определенную страницу при нажатии.
Пример:
<button type="button" value="Play as guest!" title="Play as guest!" onclick="location.href='/play'">Play as guest!</button>
Это не "ответ" на ваш вопрос, но может быть хорошей работой. Надеюсь, это поможет.
Ответ 3
Без использования Javascript я не уверен, что он есть. Один из способов облегчить проблему может заключаться в создании скрытого ввода, который просто содержит некоторое значение нежелательной почты, которое можно игнорировать с другой стороны следующим образом:
<input type="hidden" name="foo" value="bar" />
Таким образом, у вас никогда не будет пустой запрос GET.
Ответ 4
Это старый пост, но эй.. здесь я иду
Если вы используете что-то вроде PHP, вы можете отправить форму на страницу "прокси", которая перенаправляет заголовок в определенное место + запрос.
Например:
HTML:
<form action="proxy.php" method="get">
<input type="text" name="txtquery" />
<input type="button" id="btnSubmit" />
</form>
PHP (proxy.php)
<?php
if(isset($_GET['txtquery']))
$query = $_GET['txtquery'];
header("Location /yourpage/{$query}");
?>
Я предполагаю, что это то, что вы пытаетесь сделать