好吧,我正在尝试做一个简单的命令:从TextBox中获取文本。我已经搜索过了,但每个答案都没有找到我。
在我的代码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 :(得分: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。
也许它会以某种方式帮助你。
答案 1 :(得分:0)
这是<form>
标签,阻碍了您获取回发值。删除<form
>标记,并在文本框中使用AutoPostBack=true
。您将不需要使用jQuery来捕获事件和值。
答案 2 :(得分:-2)
您无法从客户端代码调用代码背后的代码。它们在不同的机器上执行。