0

jquery ajaxスクリプトをリンクして作成しているWebサイトに入力フィールドがあります。キーが押されるたびに、ajax スクリプトは入力フィールドの値に一致する文字列を検索します。文字列が見つかった場合、スクリプトはページの div を更新し、入力フィールドの値を null に戻して、ユーザーが新しい文字列を入力するための新しいスペースがあります。ただし、ユーザーが最初の文字列を入力し、スクリプトが応答データで div を更新し、入力フィールドの値をクリアした場合、ユーザーは 1、2 秒待たずに再度入力を開始し、フィールドに入力したテキスト (最初の文字列が検証された直後に新しい文字列を入力する場合、テキストが削除されないようにしたいだけです

これは、div を更新する jquery スクリプトです。これは、input(with id: searchbar) の onkeypress イベントによって起動されます。

function search(status){
  if($("#searchbar").val().length > 1){
    $.get("http://www.website.com/subfolders/some_php_script.php",
      {l: status, q:$("#searchbar").val()},
      function(data){
        $("#div-to-update").html(data);
      }
    );
  }
}

編集: #searchbar は、更新される div 内にありません

4

1 に答える 1

0

私は答えを見つけました。それは、私の Ajax が何度も起動している可能性に関係しているとほぼ確信しています {これが本当の問題であるかどうか誰か確認できますか?}

文字列が既に見つかっているかどうかを判断するためのコントロールとしてブール変数を設定しました。その場合は何も更新されません。修正されたコードは次のとおりです。

var found = false; //initialized

function search(status){
  if($("#searchbar").val().length > 1){
    $.get("http://www.website.com/subfolders/some_php_script.php",
      {l: status, q:$("#searchbar").val()},
      function(data){
        if(!found){
          $("#div-to-update").html(data);
          found = true;
        }
      }
    );
  }
}
于 2012-07-24T15:21:13.617 に答える