0

asp.netページに2つのフォームがあります。1つは全体的なフォームタグで、runat="server"もう1つは検索用の1つの入力を持つ単純なフォームです。フォーム自体:

<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メンバーシップログインコントロールがあり、検索フォームがページに表示されると投稿を停止します。

私はグーグルで少し見回しましたが、私が見つけたのは、1つのページで2つのサーバーサイドフォームについて話している人々だけです。これは些細なことかもしれませんが、私はそれを機能させることができません。

ありがとうございました!

4

1 に答える 1

1

2 つのフォームを入れ子にしている可能性があります。この場合、外側のもの (ブラウザによっては内側のもの) は機能しません。

これを修正するのは非常に簡単です。含まれているフォームを、含まれているフォームの外に移動するだけです。

于 2012-06-29T16:25:31.430 に答える