2016-11-12 4 views
0

내가 필요로 할 때 잘 작동하는 검색 영역이 있지만 문제는 입력 할 때 결과를 검색하지 않기 때문에 버튼을 눌러야합니다. 다른 코드를 시도했지만 아무 것도 작동하지 않으며 누구에게도 해결책이 있는지 궁금합니다. 이것은 내가 가진 코드 :이 함께 일할 수있는 것 같아요Enter 키를 누를 때 클릭 이벤트를 트리거하는 방법은 무엇입니까? 텍스트 영역

<input 
data-path=".title" 
data-button="#title-search-button" 
type="text" 
value="" 
placeholder="Search..." 
data-control-type="textbox" 
data-control-name="title-filter" 
data-control-action="filter" 
/> 

을 "onKeyDown에 ="하지만 이후에 추가 정말로 확실하지 않다.

누군가가이를 해결할 수 있다면 정말 고맙겠습니다.

+3

가능한 중복 (http://stackoverflow.com/questions/7060750/detect-the-enter-key-in-a -text-input-field) – LGSon

+0

태그가 지정되지 않았을 가능성이 높습니다. jQuery – mplungjan

답변

1

onkeydown 속성을 사용할 수 있지만 JavaScript 이벤트 리스너 인 & 핸들러를 통해 이러한 작업을 수행하는 것을 선호합니다. onkeydown 속성을 사용하여 이것을 수행하려면 Bryan의 대답을보십시오.

먼저 ID/클래스 이름을 입력에 추가하여 쉽게 타겟팅 할 수 있습니다. 필자의 예에서는이 입력의 ID로 searchText을 추가 할 것입니다.

자바 스크립트 :

document.getElementById('searchText').addEventListener("keydown",function(e){ 
    if(e.keyCode == 13){ 
    //doSomething() 
    } 
}); 

jQuery를 : 나는 계획 javascript를 사용하여 아래에 샘플 코드를 제공 한

$('#searchText').on('keydown',function(e){ 
    if(e.which == '13'){ 
    //doSomething(); 
    } 
}); 
+0

감사합니다. 또한 다른 모든 분들께 도움을 청합니다. – UXRO

+1

document.getElementById ('searchText'). onkeydown이 더 호환 가능합니다. – mplungjan

+0

결과가 동일합니다. 사용하는 것이 더 나은 이유는 무엇입니까? – UXRO

1

예, keydown에서 작동합니다. 하지만 작동하려면 자바 스크립트를 추가해야합니다.

<input 
    data-path=".title" 
    data-button="#title-search-button" 
    type="text" 
    value="" 
    placeholder="Search..." 
    data-control-type="textbox" 
    data-control-name="title-filter" 
    data-control-action="filter" 
    onkeydown="if (event.keyCode == 13) { // Your search results code here; 
    return false; }" 
/> 
0

입력란에 keyup에 대한 이벤트 수신기를 추가해야합니다. 이 도움이

$("#myinput").on('keyup', function (e) { 
 
    if (e.keyCode == 13) { 
 
     alert("Enter clicked"); 
 
     // add your code here 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input 
 
      id = "myinput" 
 
      data-path=".title" 
 
      data-button="#title-search-button" 
 
      type="text" 
 
      value="" 
 
      placeholder="Search..." 
 
      data-control-type="textbox" 
 
      data-control-name="title-filter" 
 
      data-control-action="filter" 
 
     />

희망 : e.keyCode 여기

(입력 13으로 발생하는) 예를 들어 당신에게 특수 키를 줄 것이다!

+0

질문하지 않습니다. jQuery – mplungjan

+0

죄송합니다. stackoverflow를 처음 사용하여 jquery가 태그가 지정되어 있지 않으면 솔루션을 제공 할 수 없다는 것을 알지 못했습니다. 따라서 태그에 특별히 언급되지 않는 한 HTML 또는 기타 다른 추가 라이브러리 (모든 언어로 표시)를 사용하면 HTML5를 사용할 수 없습니다. –

+0

질문에서 OP가 noob이고 OP가 일반 JS에 대해 알고있는 JavaScript 또는 jQuery 신호 대신 태그에 onkeydown을 사용합니다.응답 할 때 고려하십시오. 일반적으로 자바 스크립트 만 질문은 자바 스크립트 태그입니다. 이 태그는 특별히 태그가 지정되지 않았습니다. 추신 : 라이브러리의 선택은 또한 IE8을 배제합니다. – mplungjan

0

. 이 솔루션은 jquery 또는 다른 라이브러리없이 작동합니다.

키 누르기 이벤트에서 아래에 언급 된 option 1option 2에 따라 버튼 클릭과 동일한 방식으로 click 이벤트를 호출 할 수 있습니다. [(가) 텍스트 입력 필드에 키를 입력 감지]의

function triggerSearch() { 
 
    if(event.keyCode === 13) { 
 
    // Option 1: You can call the 'search' method directly 
 
    //search(); 
 
    // Option 2: OR you can trigger the button `click` event 
 
    getElement('searchButton').click(); 
 
    } 
 
} 
 

 
function search() { 
 
    var searchTerm = getElement('searchTextBox').value; 
 
    getElement('searchTerm').innerHTML = searchTerm; 
 
} 
 

 
function getElement(id) { 
 
    return document.getElementById(id); 
 
}
<input 
 
      data-path=".title" 
 
      data-button="#title-search-button" 
 
      type="text" 
 
      value="" 
 
      placeholder="Search..." 
 
      data-control-type="textbox" 
 
      data-control-name="title-filter" 
 
      data-control-action="filter" 
 
      id="searchTextBox" 
 
      onkeydown="triggerSearch()" 
 
     /> 
 

 
<input type="button" value="Search" id="searchButton" onclick="search()" /> 
 
<br/><br/> 
 
Search Term: <span id="searchTerm"></span>

관련 문제