Отправка HTML-формы с отсутствующим именем параметра - PullRequest
0 голосов
/ 16 июля 2010

Обычно HTML-форма отправляет параметры запроса в виде пар ключ-значение, например:

http://blabla/?something=something&this=that

Но мне нужна форма, которая генерирует URL с одним из опущенных ключей запроса:

http://blabla/?something&this=that

Насколько я могу судить, отсутствующий или пустой атрибут name не совсем соответствует ожидаемому:

<input type="hidden" name="" value="myvalue"/>

Приводит к этому со знаком равенства, который мне не нужен:

http://blabla/?=myvalue

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

Ответы [ 3 ]

2 голосов
/ 16 июля 2010

Если вам нужно, чтобы атрибут не имел значения, разве вы не должны сделать что-то подобное вместо этого?

<input type="hidden" name="something" value=""/>

, который выдаст URL http://blabla/?something=&this=that, который вы ищете, только с'=' после чего-то.Или просто оставьте это полностью (т.е. не определяйте тип ввода скрытым), и вы получите URL http://blabla/?this=that ...

1 голос
/ 16 июля 2010

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

Я нашел один способ сделать это: не отправлять форму вообще, а использовать JavaScript для вставки содержимого текстового поля в динамическисгенерировал URL, а затем открыл его с помощью window.location:

<form name="search_form" method="get" action="">
    <input type="text" size="30" maxlength="100"/>
    <input type="submit" value="Search" />
</form>

<script type="text/javascript">
window.onload = function() {
    document.search_form.onsubmit = function() {
        var term = document.search_form.elements[0].value;
        var url = "http://blabla/search/X?d:(electronic books) and ("
            + term + ")&searchscope=1";
        window.location = url;
    }
}
</script>

Я не много делаю JavaScript, и это, безусловно, вызовет тревогу у любого, кто помнит о доступности и соответствии веб-стандартам.Тем не менее, будьте уверены, что он ничем не хуже остальных javascriptaghetti, входящих в эту систему.

0 голосов
/ 16 июля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...