IE8 "Object doesn't support this property or method" 与 JQuery 1.7
IE8 "Object doesn't support this property or method" with JQuery 1.7
当在 IE 8 中执行以下代码时,控制台显示第 4 行第 4 个字符的错误 "Object doesn't support this property or method"。这只发生在 IE 8 中。我使用的是 jquery-1.7。1.min.js
$(document).ready(function () {
var states = ["NEW YORK",
"PUERTO RICO",
"ALABAMA",
"ALASKA",
"AMERICAN SAMOA",
"ARIZONA",
"ARKANSAS",
"CALIFORNIA",
"COLORADO",
"CONNECTICUT",
"DELAWARE",
"DISTRICT OF COLUMBIA",
"FEDERATED STATES OF MICRONESIA",
"FLORIDA",
"GEORGIA",
"GUAM",
"HAWAII",
"IDAHO",
"ILLINOIS",
"INDIANA",
"IOWA",
"KANSAS",
"KENTUCKY",
"LOUISIANA",
"MAINE",
"MARSHALL ISLANDS",
"MARYLAND",
"MASSACHUSETTS",
"MICHIGAN",
"MINNESOTA",
"MISSISSIPPI",
"MISSOURI",
"MONTANA",
"NEBRASKA",
"NEVADA",
"NEW HAMPSHIRE",
"NEW JERSEY",
"NEW MEXICO",
"NORTH CAROLINA",
"NORTH DAKOTA",
"NORTHERN MARIANA ISLANDS",
"OHIO",
"OKLAHOMA",
"OREGON",
"PALAU",
"PENNSYLVANIA",
"RHODE ISLAND",
"SOUTH CAROLINA",
"SOUTH DAKOTA",
"TENNESSEE",
"TEXAS",
"UTAH",
"VERMONT",
"VIRGIN ISLANDS, U.S.",
"VIRGINIA",
"WASHINGTON",
"WEST VIRGINIA",
"WISCONSIN",
"WYOMING"];
var _events = "change focusout";
$("[name='payToBankState'], [name='amount'], [name='customerType'], [name='usdEquivalent'], [name='currency']").live(_events, function(event) {
if($("[name='customerType']").val() == "Person" && states.indexOf($("[name='payToBankState']").val()) < 0) {
if($("[name='currency']").val() == "USD") {
if($("[name='amount']").val() > 15 ) {
$("[name='pfhTran']").attr('checked', true);
$("[name='pfhTran']").removeAttr('disabled');
}
else {
$("[name='pfhTran']").removeAttr('checked');
$("[name='pfhTran']").attr('disabled', true);
}
}
else if ($("[name='usdEquivalent']").val() > 15) {
$("[name='pfhTran']").attr('checked', true);
$("[name='pfhTran']").removeAttr('disabled');
}
else {
$("[name='pfhTran']").removeAttr('checked');
$("[name='pfhTran']").attr('disabled', true);
}
}
else {
$("[name='pfhTran']").removeAttr('checked');
$("[name='pfhTran']").attr('disabled', true);
}
});
});
方法"indexOf"不是IE8数组方法的一部分。您应该可以使用 jQuery.inArray 快速解决此问题:http://api.jquery.com/jQuery.inArray/
变化:
states.indexOf($("[name='payToBankState']").val()) < 0
收件人:
$.inArray($("[name='payToBankState']").val(), states) < 0
当在 IE 8 中执行以下代码时,控制台显示第 4 行第 4 个字符的错误 "Object doesn't support this property or method"。这只发生在 IE 8 中。我使用的是 jquery-1.7。1.min.js
$(document).ready(function () {
var states = ["NEW YORK",
"PUERTO RICO",
"ALABAMA",
"ALASKA",
"AMERICAN SAMOA",
"ARIZONA",
"ARKANSAS",
"CALIFORNIA",
"COLORADO",
"CONNECTICUT",
"DELAWARE",
"DISTRICT OF COLUMBIA",
"FEDERATED STATES OF MICRONESIA",
"FLORIDA",
"GEORGIA",
"GUAM",
"HAWAII",
"IDAHO",
"ILLINOIS",
"INDIANA",
"IOWA",
"KANSAS",
"KENTUCKY",
"LOUISIANA",
"MAINE",
"MARSHALL ISLANDS",
"MARYLAND",
"MASSACHUSETTS",
"MICHIGAN",
"MINNESOTA",
"MISSISSIPPI",
"MISSOURI",
"MONTANA",
"NEBRASKA",
"NEVADA",
"NEW HAMPSHIRE",
"NEW JERSEY",
"NEW MEXICO",
"NORTH CAROLINA",
"NORTH DAKOTA",
"NORTHERN MARIANA ISLANDS",
"OHIO",
"OKLAHOMA",
"OREGON",
"PALAU",
"PENNSYLVANIA",
"RHODE ISLAND",
"SOUTH CAROLINA",
"SOUTH DAKOTA",
"TENNESSEE",
"TEXAS",
"UTAH",
"VERMONT",
"VIRGIN ISLANDS, U.S.",
"VIRGINIA",
"WASHINGTON",
"WEST VIRGINIA",
"WISCONSIN",
"WYOMING"];
var _events = "change focusout";
$("[name='payToBankState'], [name='amount'], [name='customerType'], [name='usdEquivalent'], [name='currency']").live(_events, function(event) {
if($("[name='customerType']").val() == "Person" && states.indexOf($("[name='payToBankState']").val()) < 0) {
if($("[name='currency']").val() == "USD") {
if($("[name='amount']").val() > 15 ) {
$("[name='pfhTran']").attr('checked', true);
$("[name='pfhTran']").removeAttr('disabled');
}
else {
$("[name='pfhTran']").removeAttr('checked');
$("[name='pfhTran']").attr('disabled', true);
}
}
else if ($("[name='usdEquivalent']").val() > 15) {
$("[name='pfhTran']").attr('checked', true);
$("[name='pfhTran']").removeAttr('disabled');
}
else {
$("[name='pfhTran']").removeAttr('checked');
$("[name='pfhTran']").attr('disabled', true);
}
}
else {
$("[name='pfhTran']").removeAttr('checked');
$("[name='pfhTran']").attr('disabled', true);
}
});
});
方法"indexOf"不是IE8数组方法的一部分。您应该可以使用 jQuery.inArray 快速解决此问题:http://api.jquery.com/jQuery.inArray/
变化:
states.indexOf($("[name='payToBankState']").val()) < 0
收件人:
$.inArray($("[name='payToBankState']").val(), states) < 0