質問する
2383 次
5 に答える
4
これはあまりエレガントではありませんが、機能します:
$("select").keydown(function(e){
e.preventDefault();
var elem = this;
elem.disabled=true;
setTimeout(function() { elem.disabled = false; }, 0);
});
挨拶。
于 2014-08-07T16:07:32.897 に答える
1
これは、Firefox 19で機能しているようです。ユーザーが値を入力したときに、キーボード入力を介して選択値が変更されないようにすることが意図されていると想定しています。
$(document).ready(function() {
var valueToKeep;
$("#select").keypress(function (event) {
$(this).val(valueToKeep);
});
$("#select").keydown(function (event) {
event.preventDefault();
event.stopPropagation();
valueToKeep = $(this).val();
});
});
于 2013-02-28T17:46:22.520 に答える
0
キーを押したときに別のオプションを選択したくないと思います。これはブラウザ固有の実装であり、イベントを発生させないと思います。あなたがしなければならないことは、通常の要素と jquery を使用して、独自の選択の模倣を構築することです。これは、どれだけ夢中になりたいかによって非常に複雑になる可能性がありますが、ここでは小さなスタートです。
HTML:
<div class="imitateSelect>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
CSS:
.imitateSelect div{
display:none;
}
JS:
$('.imitateSelect div').first().show();
$('.imitateSelect div').on('click', function(){
$(this).siblings().slideDown();
});
などなど
別のオプションは、 Chosenのようなプラグインを使用することです。彼らが何をしたか見てみましょう。入力バーを削除すると、選択機能が得られ、キーを押しても選択したオプションが変更されません。
于 2013-02-28T17:51:35.093 に答える
0
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
</head>
<body>
<select id="select">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<script>
// working fine in PC and mobile
$('#select').on('focus', function() {
$(this).hide();
setTimeout(function(self) {
self.show();
}, 0, $(this))
});
</script>
</body>
</html>
于 2015-11-06T12:34:11.520 に答える