2012-11-16 4 views
1

내가 jQuery를 사용하여 일부 AJAX 배경 요청을 ASP.NET 응용 프로그램 일하고 해결은 (내가 : jQuery를 새로운 해요).jQuery를 배경 요청 - 문제

$(document).ready(function() { 

     $("#ctl00_cphContent_txtOrgName").keypress(function() { 

      var orgNameLen = $("#ctl00_cphContent_txtOrgName").val().length; 
      if (orgNameLen <= 4) { 
       $("#orgNameHints").empty(); 
       $("#orgNameHints").css('display', 'none'); 
       return; 
      } 
      $("#orgNameHints").css({ "visibility": "visible" }); 
      $("#orgNameHints").html("Checking..."); 
      var OrgName = $(this).val(); 
      $.get("ProcessOrgName.aspx?n=" + OrgName, function (data) { 
       $("#orgNameHints").html(data); 
       $("#orgNameHints").show(); 
      }); 
     }); 
     $("#ctl00_cphContent_txtOrgName").blur(function() { 
      $("#orgNameHints").empty(); 
      $("#orgNameHints").css({ "visibility": "hidden" }); 
     }); 
    }); 

그리고 ASP 코드는 다음과 같습니다 : 내 jQuery를 코드는 다음과 같습니다 여기

<asp:TextBox ID="txtOrgName" runat="server" MaxLength="100"></asp:TextBox> 
<div id="orgNameHints" style="border: 1px solid silver; display:none; position:absolute; padding: 5px; background: #EFEFEF; z-index: 100;"></div> 

txtOrgName 그냥의 힌트처럼 배경 (동일 데이터를 기존 레코드를 확인하는 데 사용되는 텍스트 상자입니다 Google에서 키워드 검색). .get() 메소드는 검색어 문자열을 ProcessOrgName.aspx에 게시하여 데이터베이스에서 기존 레코드의 목록을 반환합니다.

Everyting 여기에서 잘 작동하지만 내가 직면하고있는 문제는 다음과 같습니다 나는 유래 검색하고이 곳 w stackoverflo를 조회 할 경우

  1. 키를 누를 때() 이벤트는, 같은 검색을 호출가 없습니다. 정확한 결과를 얻을 수있는 방법이 있습니까?
  2. 키워드를 검색하면 잘 표시되지만, 을 눌러 텍스트 상자를 지우면 텍스트 상자가 이미 지워진 후 백 스페이스를 두 번 누르기 전까지 동일한 결과가 계속 표시됩니다. 그래서 사람들은 백 스페이스 키를 눌러서 결과를 표시하지 않도록 그 아이디어를 내놓으십시오.
  3. orgNameHints이라는 div를 표시하고 숨길 수있는 다른 방법으로 show(); 및 hide(); 내 경우에는 작동하지 않으며 더 정확한 결과를 원합니다.
  4. 입력하는 대신 사용자가 키워드를 복사하여 붙여 넣기 때문에 일부 경우에 해당하므로 검색 결과가 표시됩니다.

어떤 도움 정말 감사합니다.

+0

좋은 방법이 아닙니다, 난 당신이 내 질문에 대한 답을 읽어 보는 것이 좋습니다 -에 http : // 유래.com/questions/8627175/jwery-better-way-to-jquery –

+0

감사합니다. @Atif,하지만 그것은 검색 향상을위한 제안 일 뿐이며 실제로 문제를 해결하지는 못합니다. 거기에 언급 된 수정안을 작성하겠습니다. 실제 문제를 도와주세요. – Cyberpks

답변

0
  1. 이것은 텍스트를 캡처 한 결과 일 수 있습니다. keypress/keyup/keydown. keyup() 이벤트에서이 스크립트를 실행하는 것이 좋습니다. 자세한 내용은 http://www.bloggingdeveloper.com/post/KeyPress-KeyDown-KeyUp-The-Difference-Between-Javascript-Key-Events.aspx을 참조하십시오.
  2. 왜 쇼/작동하지 숨기기 않는 한
  3. 를 참조하십시오? 붙여 넣기 (CTL + V), 나는 그이를 keyDown() 이벤트에 생각하는 경우 (예를 들어 : ({없음 표시})
  4. . 또는, fadeIn/페이드 아웃 또는 $ ("ELEM") CSS를 사용할 수 있습니다. keyCode == 86) // 86은 Paste 이벤트입니다. 멀리 마우스 붙여 넣기로, 나는 확실하지 않다. 이것에 대한 좋은 정보를 찾을 수 없다.

다음은 바이올린 링크가있는 초보자 용 코드 블록입니다.

$(document).ready(function(){ 
    function DoWork(){ 
    $("#searchOutput").append("<li>" + $("#tb1").val() + "</li>"); 
    } 
$("#tb1").keyup(DoWork); 
    $("#tb1").keydown(function(e){ 
     if(e.keyCode == 86){ 
      DoWork(); 
     } 
    });   
});​ 

http://jsfiddle.net/TNCodeMonkey/CnDGw/3/

행운을 빕니다! 키 누르기 이벤트에 직접 실제 방법을 결합