0

ウェブサイトのホームページで使用し、ウェブサイトの写真ライブラリにリンクする画像検索機能を作成しています。

すべての画像ギャラリーアルバム(これらは子画像のリストを表示するページ)をオプションとして使用し、テキスト入力と検索ボタンを備えた選択メニューを作成しました。

<select name="photographySearch" id="photographySearch">
    <option value="">Select category</option>
    <option value="football.aspx">Football</option>
    <option value="basketball.aspx">Basketball</option>
    <option value="hockey.aspx">Hockey</option>
</select>

<input type="text" id="photographySearchKeyword"
  onfocus="if(this.value==this.defaultValue) this.value='';"
  onblur="if(this.value=='') this.value='Enter keyword';"
  value="Enter keyword" />

<input type="button" 
  id="photographySearchButton" 
  name="searchbutton" 
  value="Search" />​

次のことを行うスクリプトが必要です。

  1. ユーザーが選択メニューからオプションを選択したり、テキスト入力にキーワードを入力したりせずに検索ボタンをクリックすると、場所が「/photography-search.aspx」ページに変わります(デフォルトでは、写真のすべての画像が表示されます)。ライブラリ)、検索結果としてデフォルトの「Enterkeyword」を表示しない

  2. ユーザーが選択メニューからオプションを選択せず​​に検索ボタンをクリックし、テキスト入力にキーワードを入力すると、場所は「/photography-search.aspx?search='+ $('#photographySearchKeyword」に変更されます。 ).attr('value'); " テキスト入力に入力された値を含む

  3. ユーザーが選択メニューからオプションを選択したり、テキスト入力にキーワードを入力したりせずに検索ボタンをクリックすると、場所が「/photography-search.aspx」ページに変わります(デフォルトでは、写真のすべての画像が表示されます)。図書館)

  4. ユーザーが検索ボタンをクリックして選択メニューからオプションを選択し、テキスト入力にキーワードを入力しない場合、場所は選択したオプションの値(「/football.aspx」ページなど)に変更され、検索結果としてデフォルトの「キーワードを入力」

  5. ユーザーが検索ボタンをクリックして選択メニューからオプションを選択し、テキスト入力にキーワードを入力すると、場所は選択したオプションの値に変更されます。例: "/football.aspx?search='+ $( '#photographySearchKeyword')。attr('value'); " テキスト入力ページに入力された値を含む

これまでのところ、オプション2を作成することしかできませんでした。

$('#photographySearchButton').click(function() {
    location.href = '/photography-search.aspx?search=' +
                    $('#photographySearchKeyword').attr('value');
});

http://jsfiddle.net/zjs8n/

どんな助けでも大歓迎です。

4

1 に答える 1

2

ここで例をテストします

$(document).ready(function() {
  $('#photographySearchButton').click(function() {
    var category = $('#photographySearch :selected').val();
    var keyword = $('#photographySearchKeyword').val();

    var page = '/photography-search.aspx';
    var query = '';

    if (category.length > 0)
      page = category;
    if (keyword.length > 0 && keyword != 'Enter keyword')
      query = '?search=' + keyword;

    alert(page+query);
  });
});
于 2013-01-04T03:45:53.947 に答える