我正在尝试让 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]-->