2012-09-05 18 views
0

好,所以這應該是一件相當容易的事情,但我認爲我錯過了一些東西。我有一個像這樣的輸入字段。如何從查詢字符串中的輸入字段發回文本?

<input id="jobSearchField" class="searchField" runat="server" 
onkeypress="javascript:GoToFunc(event, this.value)" type="text" 
onfocus="if (this.value == 'Seach jobs by JobID, JobTitle, Keywords, or Location') this.value=''" 
value="Seach jobs by JobID, JobTitle, Keywords, or Location" /> 

我也有一個像這樣右邊的按鈕。

<button id="filterSubmit" runat="server" class="filterSubmit">Submit</button> 

這是我「嘗試」構建的JavaScript。我「試圖」打造

<script type="text/javascript"> 
    function GoToFunc(e, value) { 
     if (e.keyCode == 13) { 
      var location = document.location.href + "&query=" + value; 
      document.location.href = location; 
      document.open(); 
     } 
    } 
</script> 

我的JavaScript函數是假設傳遞查詢字符串返回到URL,這樣我可以分析用戶想要的東西。我正在使用ASP.NET和C#語言。

所以問題是我該如何返回url作爲用戶輸入的參數?

+1

一個簡單的方法就是在服務器端的'OnClick'處理程序中使用'Response.Redirect'。 – Matthew

+0

標籤'javascript:'是無用的。去掉它。 – epascarello

回答

0

首先您要再造一個形式做什麼。如果你只是一個表單,它會工作。

對於您的代碼,請通過返回false來停止輸入鍵操作。您還需要將返回添加到事件處理程序中。這也期望查詢字符串值不存在。

<input id="jobSearchField" class="searchField" runat="server" 
onkeypress="return GoToFunc(event, this.value)" type="text" 
onfocus="if (this.value == 'Seach jobs by JobID, JobTitle, Keywords, or Location') this.value=''" 
value="Seach jobs by JobID, JobTitle, Keywords, or Location" /> 



<script type="text/javascript"> 
    function GoToFunc(e, value) { 
     if (e.keyCode == 13) { 
      var newLocation = window.location.href + "&query=" + encodeURIComponent(value); 
      window.location.href = newLocation; 
      return false; //stop event key 
     } 
    } 
</script> 
+0

好吧,所以我嘗試了這種方法,並將window.location.href設置爲newLocation後,它實際上並沒有改變這個值。有什麼想法嗎? – meanbunny

+0

等待我添加了GoToFunc的返回,然後它拋出一個異常。客戶端(&)檢測到潛在危險的Request.Path值。 – meanbunny

+0

好吧,問題在於該頁面沒有?之前 &。由於這個應用程序有多個頁面參數,我將不得不解密,如果?已經存在,如果已經有參數添加到字符串中。 – meanbunny

1

您應該使用是encodeURI或encodeURIComponent

var location = document.location.href + "&query=" + encodeURI(value); 
相關問題