IE8 "Object does not support this property or method" with JQuery 1.7
When the following code is executed in IE 8, the console displays the error "Object does not support this property or method" for line 4 character. This only happens with IE 8. I am using 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);
}
});
});
+3
source to share
1 answer
The "indexOf" method is not part of the IE8 array methods. You should be able to quickly fix this with jQuery.inArray: http://api.jquery.com/jQuery.inArray/
Edit:
states.indexOf($("[name='payToBankState']").val()) < 0
To:
$.inArray($("[name='payToBankState']").val(), states) < 0
+4
source to share