我在 asp.net 页面上有两个表单。一个是整体表单标签,带有runat="server"
,另一个是一个简单的表单,带有一个用于搜索的输入。表格本身:
<form method="post" id="searchForm">
<input type="text" id="searchstring" class="search-box" name="searchstring"
value="Search..." />
</form>
用于检查回发的 Razor 脚本:
@{
bool isPostBack = !String.IsNullOrEmpty(Request.Form["searchstring"]);
var original_value = "Search...";
if(isPostBack)
{
Response.Redirect("/SearchResults/?q=" + Request["searchstring"]);
}
}
这是通过 jQuery 在输入时提交的,如下所示:
$(document).ready(function() {
var $search = $('#searchstring');
original_val = "@original_value";
$search.focus(function() {
if ($(this).val() === original_val) {
$(this).val('');
}
}).blur(function() {
if ($(this).val() === '') {
$(this).val(original_val);
}
}).keypress(function(e) {
if (e.which == 13) {
$('form#searchForm').submit();
}
}); });
我的问题是,一旦我将搜索表单放在页面上,服务器端表单就会被禁用。例如:我有一个常规的 asp.net 会员登录控件,一旦搜索表单出现在页面上,它就会停止回发。
我在谷歌上看了一会儿,但我能找到的只是人们在一页上谈论两个服务器端表单。也许这是微不足道的,但我无法让它工作。
谢谢!