Подтвердить что ты не робот

Как удалить завершающий вопросительный знак из формы GET без полей?

Пример:

<form>
    <input type='submit'>
</form>

Когда представлены результаты в:

http://example.com/?

Как это сделать:

http://example.com/

?

[Это очень простой пример проблемы, фактическая форма имеет много полей, но некоторые из них иногда отключены. Когда все отключены, трейлинг? ] появляется

4b9b3361

Ответ 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}");


?>

Я предполагаю, что это то, что вы пытаетесь сделать