2009-08-23 2 views
3

선택 입력 필드를 클릭해도 옵션 목록이 열리지 않으려면 어떤 방법이 있습니까?firefox의 선택 필드에서 mousedown을 비활성화하거나 무시하십시오.

onmousedown 및 onclick에서 false를 반환하려고 시도했지만 onfocus에서 this.blur()를 호출 해 보았습니다. readonly 속성을 설정하려고 시도했지만 Firefox에서는 작동하지 않습니다. Chrome과 IE는 mousedown 처리기에서 "return false"을 더 심각하게 반영하는 것으로 보입니다.

EDIT : 선택 입력에서 옵션을 선택하기위한 자체 인터페이스를 구현하고 싶습니다. 둘 다 선택 해제하면 모양이 변경되고 컨트롤에서 이벤트가 실행되지 않습니다. 하나의 옵션으로 제한하면 사용자가 컨트롤을 클릭 할 때 해당 옵션이 열리기 때문에 좋은 해결책은 아닙니다.

나는 select을 제거하고 텍스트 상자와 이미지에서 보이는 것처럼 보이게하려고합니다. (온라인 here)

코드 :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <title>Test searchable select</title> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $("#mys").mousedown(function() { 
       console.log("mousedown"); 
       return false; 
      }).focus(function() { 
       console.log("focus"); 
       this.blur(); 
      }); 
     }); 
    </script> 
<body> 
<select style="width: 300px" id="mys" readonly="readonly"> 
    <option>apple</option> 
    <option>banana</option> 
</select> 

</body> 
</html> 
+0

그래, 당신이 일을하려고하는 것은 입력을 선택 사용자 정의를 요구하는 것 같다. – strager

답변

1

이 왜 그것을 disabled을?

<select style="width: 300px" id="mys" readonly="readonly" disabled="disabled"> 
    <!-- ... --> 
</select> 
+0

내 업데이트보기, 여전히 컨트롤의 이벤트를 처리 할 수 ​​있어야합니다. – itsadok

0
<script type="text/javascript"> 
     $(function() { 
      $("#mys").mousedown(function() { 
       $(this).val('1');//will close opened list 
      }) 
     }); 
    </script> 

<select style="width: 300px" id="mys" readonly="readonly"> 
    <option value='1'>apple</option> 
</select> 
+0

왜 이것을 다운 그레이드 했습니까? : o –

+1

나는 downvote하지 않았지만 내 FF 11에서는 작동하지 않는다. http://jsfiddle.net/DSHJ5/ – itsadok

관련 문제