2014-07-06 48 views
2

我正在Squarespace的一個項目中創建一個非常基本的組合鎖表單,其中輸入不同的代碼(發票#)將您帶到特定的URL。因爲它是Squarespace,我不認爲我有很多其他編碼選項(但我可能是錯的 - 我非常處於學習模式!!)..我在這裏找到類似的問題Query String Redirection: How to change form input to URL?,但如何實現響應轉換成squarespace的代碼塊是遠遠超出我...使用GET格式的代碼重定向到URL

現在我的代碼如下所示:

</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> 

使用此代碼,表單將帶您到我們的團隊/ bob頁面,無論輸入什麼內容。例如如果0000輸入到表單中,我將重定向到www.mydomain.com/our-team/bob?code=0000 - 這仍然是我們的團隊/ bob頁面;如果1234被輸入到表單中,我將被重定向到www.mydomain.com/our-team/bob?code=1234 ---這仍然是我們的團隊/ bob頁面;如果沒有輸入任何內容,我點擊提交,它仍然會將我重定向到我們的團隊/ bob頁面。

理想情況下,每個獨特的代碼將帶我到我開發的獨特頁面。但廣場不讓我使用「?」在一個頁面的網址,所以我不能只是重定向的方式。我希望能夠輸入一個特定的代碼,將我帶到相應的頁面,並需要使用以下簡單邏輯檢查代碼:

如果字符串是1234,請轉到/ our-team/bob 如果字符串是5555,請轉到/ our-team/jane 如果字符串是0000,請轉到/ our-team/allen (等) 如果字符串是其他任何內容,則顯示錯誤並且不會將頁面留在所有或進入某種錯誤頁面。

希望這是有道理的(希望有可能做!)請讓我知道,如果有任何其他信息,我可以爲您提供。非常感激你的幫助!

回答

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> 
+0

這是非常有幫助,並有很大的意義 - 謝謝你這樣的快速反應!不幸的是,我不認爲腳本正在Squarespace中運行。輸入代碼「1234」現在重定向到一個錯誤頁面,其中.../our-team?code = 1234作爲url。我會多玩一些,但任何建議,歡迎! – user3810134

+0

我已經更新了我的答案,讓'handleSubmit'函數返回'false','onsubmit'回調實際上會返回函數調用本身,以確保瀏覽器不提交表單。還要確保'