何らかの理由でIE8とIE7でこのエラーが発生します。オブジェクト内のすべてのキーをループしていますが、次のように表示され続けますObject doesn't support this property or method
。
var inVal = $(inType + "#" + inName).val().trim();
ブロック全体は以下のとおりです。
for (var key in inputs) { // find all keys "brand", "name", etc. in our inputs object
var errors = false;
if (inputs.hasOwnProperty(key)) { // focus on our obj. not all others on page
var inType = inputs[key].inputType;
var inName = inputs[key].inputName;
var inVal = $(inType + "#" + inName).val().trim(); // construct input field
if (inVal == '' || inVal == null) {
errors = true;
$('#' + inName + '-error').html('');
$('#' + inName + '-error').hide().fadeIn().html(inputs[key].errorMsg);
$(inType + '#' + inName).focus();
$('#modal-loadable-inner').scrollTop(inputs[key].scrollTop);
return;
} else { // user corrected error
errors = false;
$('#' + inName + '-error').html(''); // remove error txt
}
}
}
誰かがこれをDougCrockfordのjslintボードに投稿し、彼は次のように応答しました。
for(key in object){if(Object.prototype.hasOwnProperty.call(object、key)){...}}
hasOwnPropertyはメソッドではなく演算子である必要があります。これは、メソッドであるため、この種の問題が発生しやすいためです。しかし、それはそれが何であるかなので、あなたはそれを回避しなければなりません。
Chrome、FF、Safari、Operaなどで通常どおり正常に動作します。回避策について何かアイデアはありますか?