2011-09-27 2 views
2

사람들이 물건을 검색 할 수있는 웹 앱이있다. IE9에서는 포커스가 검색 입력 요소에 있지만 첫 번째 버튼이 강조 표시되어 누군가가 Enter 키를 누르면 항상 첫 번째 버튼을 실행합니다.IE9, 입력 텍스트 상자에 초점을 맞추지 만 Enter 키를 누르면 첫 번째 입력 버튼이 실행됩니다. 그만둬야 해.

저는 사람들이 입력을 눌러 첫 번째 버튼을 실행할 수 없도록하려고합니다.

이유는 일부 사용자가 키 입력 이벤트를 기반으로하더라도 검색 입력 텍스트 상자에 입력 한 후 Enter 키를 누르는 경향이 있기 때문입니다.

검색 입력 요소에 초점을 다시 맞추려고했습니다. 나는 또한 단추를 희미하게 시도했다. 그것은 작동하지 않는 것 같습니다.

누구든지 해결책을 알고 있습니까?

감사합니다.

편집 : 누군가가 실제로 첫 번째 버튼에 초점을 맞춘 다음 Enter 키를 누르면 무엇인가 때문에 입력 버튼을 높이 올리고 싶지 않습니다. 어쩌면 내가 확인할 수 있을까? 아니면 더 나은 해결책이 있을까요?

편집 2 : Stopping IE from highlighting the first submit-button in a form 그러나이 솔루션은 그 질문은 ASP입니다입니다 : 여기 비슷한 문제를 발견했다.

편집 3 :

코드 예제 :

<div > 
     <label>ETTRN:<input type="text" id="search" maxlength="16" /></label> 
     <input type="submit" value="Generate CSV" id="generate_csv" /> 
    </div> 
+3

코드를 보여줄 수 있습니까? – Ryan

+0

이것은 IE9에서만 발생합니까 아니면 모든 브라우저에서도 마찬가지입니까? 일반적으로이 문제는 양식의 기본 작업 동작과 관련이 있습니다. – BlueFish

+0

@ryanOptini 코드는 꽤 거대하며 내 의견으로는 코드가 아닙니다. 나는 2morrow라는 간단한 예제 코드를 제시하려고 노력할 것이다. 나는 집안에 창문 기계가 없다. ie9> ___ <. 고맙습니다. – mythicalprogrammer

답변

0

나는 해결책을 찾아 낸다.

jQuery('*:focus').live('keydown', function(event) { 
    if (event.keyCode == 13) { 
     switch(jQuery(this).attr('id')) { 
      case 'search' : 
      case 'date-start': 
      case 'date-end': 
       event.preventDefault(); 
       return false; 
     } 
    } 
}); 

나는 단지 초점이 검색에 사용되는 텍스트 입력 요소 (즉, 검색, 날짜 시작, 날짜 엔드)에있을 때 걱정. 따라서 키가 눌리는 동안이 세 개의 텍스트 입력 요소 중 하나에 포커스가있는 경우 Enter 키 (13)인지 확인한 다음 Enter 키가 기본값이 아닌지 확인하십시오.

도움 주셔서 감사합니다.

+2

JQuery 버전 1.8의 'live'를 'on'으로 바꿉니다. – HATCHA

4

자체에 <form> 모든 내부 검색 상자를 넣습니다.

<form action="javascript:void(null);" method="post"> 
    <input type="text" id="searchbox" /> 
</form> 

이 (또는 적어도합니다) Enter 키의 동작으로 첫 번째 버튼의 치료에서 IE (또는 브라우저)를 방지 할 수 있습니다.

+0

그건 논리적으로 보인다. 나는 내일 그것을 시험 할 것이다. 다시 감사합니다. – mythicalprogrammer

관련 문제