2008-09-16 12 views
2

Googleカスタム検索コードはフォームタグとして提供されています。しかし、Asp.netではページ上に単一のフォームタグしか使用できません。コードを実装してaspxページに含めることができるようにするには(マスターページまたはナビゲーション要素の一部として)、最良の方法は何ですか。aspxページでGoogleカスタム検索を実装する最良の方法

答えて

7

あなたは、ASP.NETページに複数のフォームタグを持つことができます。この制限は、サーバー側(runat = "server")のフォーム・タグで行われます。

1つがrunat = "server"属性を持ち、もう一方に含まれていない限り、2つのフォームタグ(またはそれ以上)を実装できます。例:

<body> 
<form action="http://www.google.com/cse" id="cse-search-box"> ... </form> 
<form runat="server" id="aspNetform"> ... </form> 
<body> 
2

複数のフォームタグを持つことはできますが、ネストすることはできません。このシナリオでは、あらゆる種類の不思議に遭遇します(たとえば、入れ子になったフォームの開始タグが明らかに無視され、終了タグが「親」フォームを終了するような場合があります)。

0

あなたはJavascriptを使用することができます

<input name="Query" type="text" class="searchField" id="Query" value="Search" size="15" onfocus="if(this.value == 'Search') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Search'; }" onkeydown="var event = event || window.event; var key = event.which || event.keyCode; if(key==13) window.open('http://www.google.com/search?q=' + getElementById('Query').value); " /><input name="" type="button" class="searchButton" value="go" onclick="window.open('http://www.google.com/search?q=' + getElementById('Query').value);" /> 
1

フォームタグを削除し、クエリを送信するJavaScriptを使用する必要があります。見てください http://my6solutions.com/post/2009/04/19/Fixing-Google-Custom-Search-nested-form-tags-in-asp-net-pages.aspx

私は前と後のコードも含めました。だから私はそれをblogengine .netと統合するために何をしたのか分かります。

+0

ありがとうございます。 – Sharique

+0

それは良い解決策ではないようです。 javascriptが無効になっているユーザーはどうなりますか? –

+0

2つのフォームタグを分けることができれば、すべてが良好です。そうでなければ.... 最近、JavaScriptを無効にする人々の割合はどういうのだろうか... – sean

関連する問題