2

少しでもお役に立てれば幸いです。

#keyword から値を取得して URL として送信するフォームをセットアップしました。

ページは http:// mysite.com /tags です

私は2つの問題を抱えています:

  1. .toLowerCase が機能していません
  2. URL は更新されますが、次のようにキーワード入力 (キーワード) の名前が追加されます: http:// mysite.com/tags?keyword=MYKEYWORD

代わりに io を次のようにしたいと思います: http://mysite.com/tags/mykeyword

これは私がこれまでに持っているコードです:

$(document).ready(function() {
     $('#tag-search').click(function() {
          goUrl = http://mysite.com/ + $('#keyword').val().toLowerCase();
          window.location = goUrl;
     });
});

そしてフォーム:

<form id="tagForm" class="uniForm">
<fieldset class="inlineLabels">
    <div class="ctrlHolder">
        <label for="keyword">Tag Keyword</label>
        <input id="keyword" name="keyword" value="" size="35" class="textInput required" type="text" />
        <p class="formHint">Add your tag keyword and hit submit</p>
        </div>
    <div class="buttonHolder"><button type="submit" id="tag-search" class="primaryAction">Submit</button></div>
</fieldset>
</form>
4

5 に答える 5

4

フォームは現在、デフォルトの動作を実行しています。つまり、フォームに入力された値から取得されたクエリ文字列パラメーターを使用して、現在の URL を取得します (アクションまたはメソッドを指定していないため)。

return falseデフォルトの動作を停止するには、イベント ハンドラーから次のことを確認する必要があります。

$(document).ready(function() {
     $('#tag-search').click(function() {
          goUrl = 'http://mysite.com/' + $('#keyword').val().toLowerCase();
          window.location = goUrl;
          return false;  // Prevent the default button behaviour
     });
     $('#tagForm').submit( function() {
          return false;  // May be necessary to prevent the default form behaviour
     });
});

他の人も特定しているように、ベース サイトの URL を に割り当てるときに、ベース サイトの URL を引用符で囲みgoUrl、文字列として扱われるようにする必要があります。

更新Stofke が示唆するように、リダイレクト ロジックをボタンのclickハンドラーからフォームのハンドラーに移動することをお勧めします。submit

$(document).ready(function() {
     $('#tagForm').submit( function() {              
          goUrl = 'http://mysite.com/' + $('#keyword').val().toLowerCase();
          window.location = goUrl;
          return false;  // Prevent the default form behaviour
     });
});

[送信] ボタンをクリックする以外にも、フォームを送信する方法が他にもあることに注意してください。たとえばEnter、テキスト ボックス内でキーを押すなどです。実装を使用すると、ユーザーがキーワード テキスト ボックス内で Enter キーを押すと、それでも終了します。 http:// mysite.com/tags?keyword=MYKEYWORD (http:// mysite.com/tags/mykeyword ではなく)。

于 2011-02-19T22:32:43.040 に答える
1
$(document).ready(function() {
     $('#tag-search').click(function() {
          goUrl = 'http://mysite.com/' + $('#keyword').attr('value').toLowerCase();
          window.location = goUrl;
     });
});
于 2011-02-19T22:31:19.653 に答える
0

次のように URL を引用符で囲みます。

'http://mysite.com/'
于 2011-02-19T22:31:07.823 に答える
0

URL の最初の部分を囲む引用符がありません

$(document).ready(function() {
 $('#tag-search').click(function() {
      goUrl = 'http://mysite.com/' + $('#keyword').val().toLowerCase();
      window.location = goUrl;
 });

});

于 2011-02-19T22:32:00.137 に答える
0

.click()ではなく.submit ()を使用し、falseを返します。フォームが GET リクエストを実行するデフォルトの動作を実行しないようにします。両方を行う必要はありません。

$(document).ready(function() {
    $('#tagForm').submit(function() {    
        goUrl = 'http://mysite.com/' + $('#keyword').val().toLowerCase();
        window.location = goUrl;
        return false;
    });
});
于 2011-02-19T23:08:21.487 に答える