首页 > 代码库 > placeholder不兼容 IE10 以下版本的解决方法

placeholder不兼容 IE10 以下版本的解决方法

对于密码输入框placeholder的兼容问题:

HTML代码:

<input type="password" id="loginPassword" placeholder="密码(6-16位字母数字)" class="width270">
<input type="text" passwordMask="true" placeholder="密码(6-16位字母数字)" style="display:none;" class="width270">

JS代码:
<!-- 对于IE 10 以下版本placeholder的兼容性调整 -->
<!--[if lt IE 10]>
<script>
$(function(){
//文本域的事件监听
$("input[type!=‘password‘][passwordMask!=‘true‘],textarea").bind({
"focus":function(){
var placeholderVal = $(this).attr("placeholder");
var realVal = $(this).val();
if($.trim(realVal)==placeholderVal){
$(this).val("");
}
},
"blur":function(){
var placeholderVal = $(this).attr("placeholder");
var realVal = $(this).val();
if($.trim(realVal)==""){
$(this).val(placeholderVal);
}
}
});

//初始化除password框之外的文本域
$("input[type!=‘password‘],textarea").each(function(i,n){
$(this).val($(this).attr("placeholder"));
});

//密码框失去焦点,显示文本框
$("input[type=‘password‘]").blur(function(){
var next = $(this).next("input[type=‘text‘][passwordMask=‘true‘]"); var val = $(this).val(); if($.trim(val)==""){ $(next).show(); $(this).hide(); } }); //文本框获得焦点,显示密码框 $("input[type=‘text‘][passwordMask=‘true‘]").focus(function(){ var prev = $(this).prev("input[type=‘password‘]"); $(this).hide(); $(prev).show().focus(); }); //页面初始化密码框为文本框 $("input[type=‘text‘][passwordMask=‘true‘]").each(function(i,n){ var prev = $(this).prev("input[type=‘password‘]"); $(prev).hide(); $(this).show(); }); }); </script> <![endif]-->

上面的方法只能解决密码输入框,建议在网上找jQuery的placeholder插件,

有一款jQuery的placeholder插件确实很不多,用起来也挺方便

下载源码地址:https://github.com/jamesallardice/Placeholders.js/

引用方法直接在页面上加载下载好的插件,再调用插件:

<script type="text/javascript" src="http://www.mamicode.com/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="http://www.mamicode.com/js/placeholders.js"></script>

<script type="text/javascript">
    $(function(){ $(‘input, textarea‘).placeholder(); });
</script>

 

placeholder不兼容 IE10 以下版本的解决方法