1

this.valueIE(7-9)で問題があります。私はこのコードを使用します:

<script language="javascript" type="text/javascript">
  $(document).ready(function(){
    $(".inputbox").keyup(function(){
      value = this.value;
      $("#searchRe").load("suggestionSearch.php?value=" + value);
    });
});    
</script>

これは Firefox と Chrome で機能しますが、IE では「値」を「suggestionSearch.php」に渡さないでください。問題だと思いますvalue = this.value。私を助けてください :)

注:.inputboxはテキスト ボックスです。

4

8 に答える 8

5

すでにjQueryを使用しているため、この行を使用してjqueryを使用して値を取得してみてください

var value = $(this).val()

jQuery は、ブラウザの任意の動作を適切に処理します。

編集

これは IE で動作する簡単な解決策です。必要に応じてこれを変更できます。

http://jsfiddle.net/FeRsB/

于 2012-10-25T08:10:21.440 に答える
2

ページに要素がありid = "value"ますか? その場合、IE はその名前valueの付いたグローバル変数を作成し、そのグローバル変数の値を別のものに割り当てることを拒否します。

これが起こっている場合、解決策は次のように簡単です

<script language="javascript" type="text/javascript">
    $(document).ready(function(){
        $(".inputbox").keyup(function(){
            var value = this.value;
            $("#searchRe").load("suggestionSearch.php?value=" + value);
        });
    });    
</script>

( の前のvarに注意してくださいvalue)。これはとにかくやるべきことです。

于 2012-11-01T10:20:00.903 に答える
2

私はあなたのコードを試してみましたが、うまくいっているようです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >  
    <head>
        <title></title>
    </head>
    <body>
        <input type="text" class="inputbox" />
        <div id="searchRe"></div>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.js" ></script>
        <script language="javascript" type="text/javascript">
          $(document).ready(function(){
            $(".inputbox").keyup(function(){
              value = this.value;
              $("#searchRe").load("s.php?value=" + value);
            });
        });    
        </script>
    </body>
</html> 

そして、これは私のphp一時コードです(あなたが指定していないため)

<?php

    echo $_GET['value'];

?>

詳しい情報を教えてください。(たとえば、phpファイルからどのようなデータが返されるか)

編集:

これを交換

$("#searchRe").load("s.php?value=" + value);

これで

$("#searchRe").load("s.php?value=" + encodeURIComponent(value));

関数 encodeURIComponent に注意してください。詳細については、このリンクをたどってください。

于 2012-10-31T14:51:47.880 に答える
1

URL を変更する代わりに、リクエスト パラメータを引数として渡してみてください。

//                        arguement ----------v
$("#searchRe").load("suggestionSearch.php", {value: this.value});

完全なコード:

$(document).ready(function(){
   $(".inputbox").keyup(function(){
       $("#searchRe").load("suggestionSearch.php", {value: this.value});
   });
});

また、ajaxcacheが に設定されていることを確認してくださいfalse

$.ajaxSetup ({
    // Disable caching of AJAX responses
    cache: false
});
于 2012-10-31T14:29:28.317 に答える
1

イベントに乗って、必要なデータを取得するために使用できます。サンプルコードは次のとおりです。

<input class="inputbox" type="text" value="-default-" />


<script>

function changeHandler(event) {
    console.log("changeHandler: ",event.target.value);
}
function keyPressHandler(event) {
    console.log("keyPressHandler: ",event.target.value);
}
function keyDownHandler(event) {
    console.log("keyDownHandler: ",event.target.value);
}
function keyUpHandler(event) {
    console.log("keyUpHandler: ",event.target.value);
}
$(function(){
    $(".inputbox")
        .on("change",{},changeHandler)
        .on("keypress",{},keyPressHandler)
        .on("keydown",{},keyDownHandler)
        .on("keyup",{},keyUpHandler);
})
</script>

入力フィールドにフォーカスし、キー「s」を 1 回押した後のコンソールの結果:

    LOG: keyDownHandler: -default- 
    LOG: keyPressHandler: -default- 
    LOG: keyUpHandler: -default-s 
    LOG: changeHandler: -default-s

そのため、必要なデータはイベント自体を介して取得できます (さらに、必要に応じて、イベントをバインドするときに 2 番目の {} パラメータとして追加のデータを取得できます。

注: 「変更」イベントは、入力フィールドが実際にぼやけている (フォーカスが失われた) 後に発生します。

ps 「onkyeup」ハンドラーは次のようになります。

    function(event){
            $("#searchRe")
                  .load("suggestionSearch.php?value=" + event.target.value);
    }
于 2012-10-31T13:00:12.483 に答える
1

これを試しましたか?

<script language="javascript" type="text/javascript">
    $(document).ready(function(){
        $(".inputbox").keyup('', function(){
            var value = $(this).val();
            $("#searchRe").load("suggestionSearch.php?value=" + value);
        });
    });    
</script>

を追加しEvent Data(おそらく必要ありませんでした)、 を宣言しvar value、値を取得する方法を に変更しました$(this).val()

于 2012-11-05T22:38:53.253 に答える
0

この問題では、ロードではなく追加が必要です

 StrTemp  = "<ul>"
 $.each(function(value){
  StrTemp += "<li><a id='" + value + "'>" + value + "</a></li>";
 })
 StrTemp += "</ul>"
 $("#searchRe").append(StrTemp);

このコードはIEおよびその他で機能します

よろしくお願いします

于 2012-10-30T14:03:35.250 に答える
-2

また、alert($(this).serialize());も可能です。

于 2012-10-25T08:15:30.033 に答える