2017-01-28 1 views
0

내 웹 사이트 용 자동 완성 도구를 작성합니다.키를 누른 후 기능을 활성화하는 방법은 무엇입니까?

<script type="text/javascript"> 
 

 
     $('.search-form').click(function() { 
 
      \t var self = this; 
 
      \t event.preventDefault ? event.preventDefault() : event.returnValue = false; 
 
      
 

 
      var searchfield = $('.input-block-level'); 
 
      searchfield.val(searchfield.val() + "*"); 
 
      
 
      \t self.submit(); 
 
     }); 
 

 
</script>

이 제공 그것이 무엇이다 : 나는 ("*"는 마지막 문자가있는 경우에만 작동)가

그래서 나는이 코드가 부분적으로 일치하는 검색 할 나 "*"검색 필드를 클릭하고 바로 제출하십시오.

클릭 한 직후에 별표를 마지막 기호로 사용하는 기능이 필요합니다 (사람이 "*"를 입력하기 시작하면 마지막 문자 임). 그러면 사람이 제출을 클릭하거나 기다릴 때까지 기다립니다.

아무도 아이디어가 없습니까?

나는 전체 양식입니다 클릭되고있는 .search-양식을 믿고있어

+1

"java"태그는이 질문에서 무엇을해야합니까? –

+0

확실히 ... 그게 $ ('. 검색 양식')입니다. *** click *** 않습니다! *** click *** 이벤트에 반응하십시오 ... –

답변

0

도와주세요? 따라서 입력란을 검색 상자 내에서 클릭하면 클릭 객체의 전체 콜백 함수가 실행되고 self.submit()이 포함됩니다.

두 개의 기능을 각각의 이벤트 핸들러로 분리해야한다고 생각합니다. searchfield.val (searchfield.val() + "*"); 누군가가 $ ('. input-block-level')을 클릭 할 때 실행되어야하며 제출 기능은 제출 버튼 자체에 첨부되어야합니다.

0

올바르게 이해하면 keypress 또는 keyup 이벤트에 대한 추가 이벤트 수신기가 있습니다. 그러나 행사가 시작될 때마다 아스테릭스를 교체해야합니다. 이것을 시도하십시오 :

$('.input-block-level').keypress(function(e) { 
    e.preventDefault(); 
    e.stopPropagation(); 
    if(/[a-z]/ig.test(e.key)) { 
     $(this).val($(this).val().replace(/\*$/g,'') + e.key + '*'); 
    } 
}); 
+0

당신은 남자입니다 !!! 정말 고맙습니다! 그것은 작동합니다! 작은 문제는 실제 키보드에서만 작동한다는 것입니다. 제 휴대 전화에 "undefined *"라고 입력하면 그 문제를 해결할 수있는 방법이 있습니까? –

+0

또한 Enter 키를 누르면 "enter"가 인쇄됩니다. 이 기능을 a-z에만 사용할 수 있습니까? –

+0

확실히, 나는 솔루션을 편집하고 RegExp를 추가했습니다. @ MarcinStańczyk – NonPolynomial

관련 문제