3

我正在 Squarespace 中开展一个项目,以创建一个非常基本的密码锁表单,在该表单中输入不同的代码(发票编号)会将您带到特定的 URL。因为它是 Squarespace,所以我认为除了 html 之外我没有太多的编码选项(但我可能是错的 - 我非常处于学习模式!!).. 我确实在这里找到了类似的问题Query String重定向:如何将表单输入更改为 URL?,但是如何将响应实现到 squarespace 的代码块中,这超出了我的范围......

现在我的代码如下所示:

    </span></p>
<div style="margin-top:5px;">
    <form method="GET" action="/our-team/bob">
    <div class="input-append">
    <input class="span2" id="appendedInputButton" name="code" type="text">
        <button class="btn btn-primary" type="submit">Submit!</button>
      </div>
    </form>
</div>

使用此代码,表单每次都会将您带到 our-team/bob 页面,无论在表单中输入了什么。例如,如果在表单中输入 0000,我将被重定向到 www.mydomain.com/our-team/bob?code=0000 - 这仍然只是 our-team/bob 页面;如果在表单中输入 1234,我将被重定向到 www.mydomain.com/our-team/bob?code=1234 --- 这仍然只是 our-team/bob 页面;如果没有在表单中输入任何内容并且我单击提交,它仍然会将我重定向到 our-team/bob 页面。

理想情况下,每个唯一代码都会将我带到我开发的唯一页面。但是 squarespace 不允许我使用“?” 在页面网址中,所以我不能那样重定向。我希望能够输入一个特定的代码,将我带到相应的页面,并且需要使用一些简单的逻辑来对照数组检查代码:

如果字符串是 1234,转到 /our-team/bob 如果字符串是 5555,转到 /our-team/jane 如果字符串是 0000,转到 /our-team/allen (等等) 如果字符串是其他内容,则显示一个错误,根本不离开页面或转到某种错误页面。

希望这是有道理的(希望可以做到!)如果有任何其他信息可以提供给您,请告诉我。非常感激你的帮助!

4

1 回答 1

0

HTML 和标准 HTTP 协议无法满足您的要求。表单值作为查询字符串参数(如果您使用GET)或作为请求正文的一部分(如果您使用POST)发送。在这里,您似乎要求在用户输入的值和服务器上调用的特定页面之间进行一些映射。实现这一目标的唯一方法是使用一些 javascript。订阅onsubmit表单的事件并写入客户端值和服务端的映射:

<form method="GET" action="/our-team/bob" onsubmit="return handleSubmit();">
    ...
</form>

然后你可以定义handleSubmit函数来实现你的自定义逻辑:

<script>
    var handleSubmit = function() {
        var value = document.getElementById('appendedInputButton').value;
        if (value === '1234') {
            window.location.href = '/bob';
        } else if (value === '5555') {
            window.location.href = '/jane';
        } else if (value === '0000') {
            window.location.href = '/allen';
        } else {
            window.location.href = '/some-default-page';
        }
        return false;
    };
</script>
于 2014-07-06T18:56:36.083 回答