我有一個下拉列表,由另一個下拉列表的選中觸發的AJAX填充。 這個AJAX調用一個web服務,它返回一個Dictionary,然後我在jQuery中迭代以填充下拉列表。下拉列表排序在IE中不同
我遇到的問題是,在Chrome中,下拉列表是正確排序的,但在IE8中,下拉列表的前兩個選項位於錯誤的位置。
即 相反下拉之中的:
1
2
5
10
這是
5
10
1
2
有沒有人遇到過這種以前?它在IE中是一個錯誤,還是有其原因背後的原因?迭代的對象的順序是正確的,所以我不明白爲什麼它會首先出現在第3個/第4個項目中。
代碼:
function changeProduct($tr) {
var $product = $tr.find('select.product');
var $version = $tr.find('select.version');
var $quantity = $tr.find('input.quantity');
var dataString = {
sProductId: $product.val()
};
$.ajax({
type: "POST",
url: "http://site.com/services/calculator.asmx/getVersionOfProduct",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(dataString),
dataType: "json",
success: function(response) {
var JSON = jQuery.parseJSON(response.d);
emptyDropdown($version);
$.each(JSON, function(key, value) {
$version.append($('<option>').val(key).text(value));
});
},
error: function(jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
}
的Webservice:
Dim dictProducts As IDictionary(Of String, String) = SmsCalculatorProductFunctions.getVersionsForProduct(sProductId)
Dim js As New System.Web.Script.Serialization.JavaScriptSerializer
Dim sb As New StringBuilder
js.Serialize(dictProducts, sb)
Return sb.ToString()
是'JSON'對象或數組?我認爲一個對象不能被命令保證。 –
這是一個對象,我發現奇怪的是,其他所有選項在IE中的行爲都是正確的,甚至這個選項在Chrome中也是如此。 –
我認爲沒有關於對象順序實現的具體建議,所以也許Chrome開發者決定保留原始訂單 –