2017-05-19 54 views
-1

嗯,我試圖做一個簡單的命令:從TextBox中獲取文本。我已經找到了,但每個答案都失敗了。Textbox.text總是返回C代碼後面的空字符串#

在我的代碼的aspx:

<form id="form1" runat="server" method="post"> 
    <div class="form"> 

     <div class="form-search ngen-search-form"> 

      <span id="search-trigger" class="form-search-submit"> 
       <img src="Imagens/Lupa_Icon 2.png" id="lupa"/> 
      </span> 

      <asp:TextBox ID="txtBoxSearch" runat="server" CssClass="form-search-input" placeholder="Pesquise..." ViewStateMode="Enabled"/> 

     </div> 

    </div> 
</form> 

我有一個JavaScript函數,驗證哪些關鍵我的客戶按:

$(document).keypress(function(e) { 
     if(e.which == 13){ 

      if(document.getElementById("txtBoxSearch").value == "") return true; 

      else { 

       <% setSearch(); %> 

       document.getElementById("testeArv").innerHTML='<%=search.ToString()%>'; 

       return false; 

      } 

     }// First if 

}); 

最後,我的功能setSearch()在後面的代碼是:

public void setSearch() 
{ 
    if(!Page.IsPostBack) { 

     search = txtBoxSearch.Text; 

    } 
} 
+0

'string search = txtBoxSearch.Text;' – ricopo

+0

我聲明_search_是一個實例變量。 –

+0

setSearch在你的else運行時不會運行,但在服務器上當從aspx生成html時。 – jannagy02

回答

-2

您無法調用代碼來自客戶端代碼的代碼。他們在不同的機器上執行。

+0

你爲什麼不投這個答案。它是正確的。 –

+0

是的,你可以在西雅圖使用AJAX @Paul – ricopo

+0

當然,你可以使用Ajax @ricopo,但這不是原來的文章所做的,所以你的陳述沒有任何意義。另一個錯誤的評論。嘆。 –

2

主要的錯誤是關於如何在jQuery中調用codebehind方法。看看here 知道如何做到這一點。總結:你需要ajax

然後你將不得不記住它確實是Page.IsPostBack

隨着!Page.IsPostBack你說的是「首頁訪問」,但當你按下按鈕!Page.IsPostBack將是錯誤的。如果你嘗試這樣的例子:

public void setSearch() 
{ 
    if(!Page.IsPostBack) { 
     // First page access 
     search = txtBoxSearch.Text; 
    } else { 
     // The page has been reloaded 
     search = txtBoxSearch.Text; 
     } 
} 

它會工作。 (else將運行)

我不知道,但我已經嘗試過(沒有jQuery)與一個按鈕,同樣的錯誤發生。當按下Enter鍵時,您想要運行該功能,以便頁面可以重新加載。看看here

也許它以某種方式幫助你。

相關問題