1

こんにちは私の入力タイプのテキストで、ユーザーが入力した場合にURLを呼び出したいのですが、3文字を想定して、リスナーを追加する方法を教えてください。私は検索アプリケーションを開発しています。現在、以下のコードでハードコードされた値「oil」を送信しています。これが私のコードです:

<body>

<div data-role="page" id="mainPage">

    <div data-role="header">
        <h1>jQM Autocomplete</h1>

    </div>

    <div data-role="content">


        <p>
            <input type="text" id="searchField" placeholder="Categories">
            <ul id="suggestions" data-role="listview" data-inset="true"></ul>
        </p>

        <p>
            <a href="https://github.com/commadelimited/autoComplete.js" data-role="button">Download the code</a>
        </p>


    </div>

</div>

<script>

    $("#mainPage").bind("pageshow", function(e) {

        var substr,out,pra;

            var finalStr = "system"+encodeURIComponent("|^")+"0"+encodeURIComponent("|^")+"oil";
             var encodedURL = encodeURI("http://myDomainSearch.asp?requestString=");
             var parameters =  decodeURIComponent(finalStr);


        $.ajax({
        type: "POST",
        contentType:"application/x-www-form-urlencoded; charset=UTF-8",
        url: encodedURL,
        data: parameters
      }).done(function( msg )
              {
                  response  = msg
                    alert(response);
                    if(response.charAt(0)=='0')
                    {   
                        console.log("***"+ response);                                                         
                        substr = response.split('$');   

                        alert("inside if"+substr);

                        for (var out = 0;out<substr.length-1;out++)
                        {                       
                            pra = substr[out].split('|^');
                            console.log(">>>>>>>>>>>"+pra[0]);
                            console.log(">>>>>>>>>>>"+pra[1]);
                            console.log(">>>>>>>>>>>"+pra[2]);
                            console.log(">>>>>>>>>>>"+pra[3]);                  


                        }
                    }
                    else
                    {
                        alert("error")
                    }

                    $("#searchField").autocomplete({
                    target: $('#suggestions'),
                    source: pra,
                    link: 'target.html?term=',
                    minLength:1
                });
             }              
        );
    });
</script>

ここで、ハードコードされた値の代わりに、ユーザーが上記の入力タイプのテキストに3文字を入力すると、URLにヒットし、その応答に従ってリストに表示されるようにします。

どんな助けでもありがたいです。前もって感謝します。

4

2 に答える 2

5

例を挙げてみてください。

$('#searchField').keyup(function() {
  var val = $.trim( this.value );
  if(val.length == 3) {
    // do something
     .....
     ....
    var finalStr = "system"+encodeURIComponent("|^")+"0"+encodeURIComponent("|^")+ val;
  }
})
于 2012-06-25T06:29:55.570 に答える
0

.liveグローバルキープレスイベントを聞くために使用できます

<form>
<input type="text" />
<input type="text" />
<input type="text" />
<input type="text" id="txtHidden" style="display:none"/>
</form>​​​​​​​​​​

jQuery:

$(document).live('keypress', function (e) {

$('#txtHidden').val($('#txtHidden').val() + String.fromCharCode(e.which));

    if($('#txtHidden').val() == "oil")
        alert("Black gold!");
});​

jsfiddleの例

于 2012-06-25T06:53:01.060 に答える