jquery IEプレースホルダーの修正を機能させようとしています。IE9では問題なく動作しますが、IE8ではアラートが表示され続けます...
'attr(...)' は null またはオブジェクトではありません
これは私が使用しているコードです。私は何か間違ったことをしていますか?
<!--[if lte IE 9 ]>
<script>
// IE Placeholder Fix
$(function() {
if ($('input[placeholder]').attr('placeholder').val() != '') {
var ph = $('input[placeholder]').attr('placeholder');
$('input[placeholder]').blur();
if ($('input[placeholder]').attr('value').val() == 0) {
$('input[placeholder]').attr('value', ph);
$('input[placeholder]').css('color','#999999');
};
$('input[placeholder]').click(
function() {
$(this).css('color','#000000');
if ($(this).attr('value') == ph) {
$(this).attr('value','');
}
});
}
});
</script>
<![endif]-->
アップデート:
以下のコメントを使用して、私が思いついた...
<!--[if lte IE 9 ]>
<script>
// IE Placeholder Fix
$(function() {
if ($('input[placeholder]').length != 0) {
var ph = $('input[placeholder]').attr('placeholder');
$('input[placeholder]').blur();
if ($('input[placeholder]').attr('value') == '') {
$('input[placeholder]').attr('value', ph);
$('input[placeholder]').css('color','#999999');
};
$('input[placeholder]').click(
function() {
$(this).css('color','#000000');
if ($(this).attr('value') == ph) {
$(this).attr('value','');
}
});
}
});
</script>
<![endif]-->