2009-08-23 2 views
3

Есть ли способ сделать так, чтобы щелчок на выбранном поле ввода не открывал список параметров?Отключить или проигнорировать mousedown в поле выбора в firefox

Я попытался вернуть false из onmousedown и onclick, я попытался вызвать this.blur() в onfocus, я попытался настроить атрибут readonly, ничто из этого не работает в Firefox. Chrome и IE, похоже, более серьезно относятся к «return false» в обработчике mousedown.

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

Почему это было downvoted? : o –

+1

Я не спускал вниз, но это не работает на моем FF 11. http://jsfiddle.net/DSHJ5/ – itsadok

Смежные вопросы