3
我在用戶點擊所選元素時試圖更新select元素的選項時發現了chrome問題。 我正在處理的系統基本上按照下面的JSFiddle工作,只是通過ajax調用接收選項列表,但即使使用對象也會產生相同的結果。在chrome中選擇點擊的更新選項
看來正在發生的事情是,當用戶單擊並顯示選項時,它將只顯示1個選項。然後它將填充選項列表,但不更新顯示的數量。
如果您使用箭頭鍵向上或向下移動,您實際上可以選擇其他選項。我可以找到的唯一方法是單擊select元素,然後再次單擊它。
雖然它在IE和Firefox中完美工作。
一個的jsfiddle可以在這裏找到:http://jsfiddle.net/Largoh/Thz55/
HTML
<select id="selector">
<option value="2" selected>Option 2</option>
</select>
的Javascript
$(function() {
$("#selector").click(function() {
if($("option", this).length < 2)
GetOptions(this);
});
});
function GetOptions(select) {
var Options = [
{ id: 1, text: "Option 1"},
{ id: 2, text: "Option 2"},
{ id: 3, text: "Option 3"},
{ id: 4, text: "Option 4"},
{ id: 5, text: "Option 5"},
{ id: 6, text: "Option 6"},
{ id: 7, text: "Option 7"}
];
$('option:first', select).remove();
for(var i = 0; i < Options.length;i++)
{
var option = $("<option/>");
option.val(Options[i].id).text(Options[i].text);
$(select).append(option);
}
}
現在,在FF中存在問題...需要雙擊... :) – sinisake
太好了,非常感謝。我現在就試試看。您提到的問題實際上是在生產代碼中處理的。我只是拿出了需要複製的問題。 – Largoh
@nevermind確實如此,但問題是使用谷歌瀏覽器標記:)我將把它留給OP,他們如何決定讓代碼只能在需要它的瀏覽器上工作。 – CodingIntrigue