Dha*_*kla 8 javascript jquery internet-explorer telerik
我在我的应用程序中有级联下拉列表,使用jquery级联,现在我的问题是它与IE9,Firefox,Opera和Safari一起工作顺利,但不能与IE7,IE8等任何浏览器一起使用.
我浏览了问题并发现错误是由于我的jquery代码中的indexOf,我通过删除indexOf尝试了它,但它仍然给出相同的错误..
注意:在telerik脚本中是否有任何解决方法可以删除indexOf,因为我只能在其脚本中找到indexOf.
以下是代码:
function OnClientSelectedIndexChanged(sender, eventArgs) {
var senderId = sender.get_id().toString();
var uniqueName = senderId.substring(senderId.lastIndexOf('_'), senderId.length);
if(senderId.indexOf("drpdwnCondition") > 0)
{
return false;
}
var selectedItem = eventArgs.get_item();
var selectedValue = selectedItem.get_value().split('_');
$.ajax({ type: "POST", async: true,
url: "/SalesRepresentativeMonitoring.aspx/GetData", contentType: "application/json; charset=utf-8",
data: "{value:" + JSON.stringify(selectedValue[1]) + "}", dataType: "json",
success: function (msg) {
var resultAsJson = msg.d // your return result is JS array
// Now you can loop over the array to get each object
var cnditionCombo = $find("ctl00_ContentPlaceHolder1_radDock_C_Filter_drpdwnCondition" + uniqueName.toString());
cnditionCombo.clearSelection();
cnditionCombo.trackChanges();
cnditionCombo.clearItems();
for (var i in resultAsJson) {
//alert(resultAsJson[i]);
var item = new Telerik.Web.UI.RadComboBoxItem();
item.set_text(resultAsJson[i]);
item.set_value(resultAsJson[i]);
cnditionCombo.get_items().add(item);
}
var itemAtIndex = cnditionCombo.get_items().getItem(0); //get item in detailCB
itemAtIndex.select();
cnditionCombo.commitChanges();
}
});
Run Code Online (Sandbox Code Playgroud)
}
感谢您..
jab*_*lab 26
s 的indexOf()方法Array没有在IE <9中实现.当你使用jQuery时,你可以使用$.inArray(),例如
var arr = ["foo", "bar", "baz"],
bazIndex = $.inArray("baz", arr), // 2
doesntExistIndex = $.inArray("notThere", arr); // -1
Run Code Online (Sandbox Code Playgroud)
这是文档:http://api.jquery.com/jQuery.inArray/.
Que*_*tin 22
MDN上的文档indexOf包括一个pollyfill,它将在不支持JavaScript 1.6的浏览器中添加支持.
您可以将其删除以避免重写现有代码.
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
"use strict";
if (this == null) {
throw new TypeError();
}
var t = Object(this);
var len = t.length >>> 0;
if (len === 0) {
return -1;
}
var n = 0;
if (arguments.length > 0) {
n = Number(arguments[1]);
if (n != n) { // shortcut for verifying if it's NaN
n = 0;
} else if (n != 0 && n != Infinity && n != -Infinity) {
n = (n > 0 || -1) * Math.floor(Math.abs(n));
}
}
if (n >= len) {
return -1;
}
var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
for (; k < len; k++) {
if (k in t && t[k] === searchElement) {
return k;
}
}
return -1;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21838 次 |
| 最近记录: |