何らかの理由でIE8とIE7でこのエラーが発生しています。ブロック全体が下にあるJavascriptで「オブジェクトはこのプロパティまたはメソッドIEをサポートしていません」というエラーは、おそらくhasOwnPropertyを使用していますか?
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
}
}
}
誰かがダグクロックフォードのjslintボードに投稿し、彼私は私のオブジェクト内のすべてのキーをループすることだし、それは上で私にこの上Object doesn't support this property or method
を伝える続けます答え:(オブジェクトのキー)のために
{ 場合(Object.prototype.hasOwnProperty.call(オブジェクト、キー)){ ... }}
hasOwnPropertyをは は方法であるので、それは問題のこれらの種類の傾向がある、オペレータ、ない方法となっているべきです。しかしそれはそれであるので、あなたは を回避する必要があります。
いつものようにChrome、FF、Safari、Operaなどで正常に動作します。回避策に関する考えはありますか?
私はあなたがそれを持っていると思います。 * val *は文字列を返す必要があり、すべてのブラウザに* String.prototype.trim *メソッド(IE 8など)があるわけではありません。 – RobG
こんにちは、ありがとう!それがほんの小さな問題であるときにうぬぼれます;) –
@RobG [jQuery '.val()' documentation](http://api.jquery.com/val/)は、 "String、Number、Array" 。したがって、 '.val()' _always_が文字列を返すと言うのは100%正確ではありません。 – GregL