0

私の検索 Web ページには、入力ボックスにテキストがある場合に送信ボタンを有効にする単純な JQuery スクリプトがあります。

入力を検出するためにイベントを使用していkeyupますが、ユーザーが入力フィールドをクリックして以前に検索したクエリまでスクロールするイベントを処理する方法がわかりません。

このアクションを検出できるキー イベントはありません。どうすればよいですか?

JQuery コード

/* if search box has text then enable submit button otherwise disable it */
$(".searchContainer input[name=query]").keyup(function(){
    if($(".searchContainer input[name=query]").val().length > 0){
        $(".searchContainer input[type=submit]").attr("disabled", false);
    }
    else{
        $(".searchContainer input[type=submit]").attr("disabled", true);
    }
});

HTML マークアップ

<form method="post" action="/results.php">
   <input type="text" name="query" />
   <input type="submit" value="Search" disabled="disabled" />
</form>

編集

ここに画像の説明を入力

基本的にオートコンプリート イベントを処理したいのですが、機能を無効にすることに興味はありません。オートコンプリート オプションが選択されているかどうかを検出する方法を知りたいです。

4

2 に答える 2

0

キーアップの代わりにchange()jQueryイベントを使用することもできます。これは、次のように入力するだけでなく、入力の変更時に発生します。

$(".searchContainer input[name=query]").change(function(){
   if($(".searchContainer input[name=query]").val().length > 0){
       $(".searchContainer input[type=submit]").attr("disabled", false);
   }
   else{
       $(".searchContainer input[type=submit]").attr("disabled", true);
   }

});

参照: http ://api.jquery.com/change/

編集: change()イベントはあなたのためにそれを行っていないようですので、あなたは完全に異なるアプローチを試すことができます:

$(".searchContainer input[type=submit]").click(function(){
    if ( $(".searchContainer input[name=query]").val().length == 0 ) {
        return false;
    }
});
于 2012-09-20T22:52:24.957 に答える
0

autocomplete="off"次のように、入力フィールドに設定してみてください。

<form method="post" action="/results.php">
   <input type="text" autocomplete="off" name="query" />
   <input type="submit" value="Search" disabled="disabled" />
</form>
于 2012-09-20T22:47:39.413 に答える