ie8不兼容input的placeholder属性但是要实现其效果的方法

通过学习前辈的思想,个人想法整理如下:

  1. 通过两个元素标签,仿造出placeholder的内容
  2. 使用position定位好两个元素标签
  3. 第一要隐藏两个元素标签display:none,在<!--[if gte IE 8]><![endif]-->中设置style样式为display:inline-block
  4. 使用js控制效果,通过给页面绑定点击事件并且利用target对象做判断,控制两个元素标签的显藏:
  • 点击的对象是元素标签,当前点击对象隐藏,判断另外的输入框值是否为空,是否隐藏显示第二个元素标签
  • 点击的对象时输入框,当前输入框的元素标签隐藏,判断另外的输入框值是否为空,是否隐藏显示第二个元素标签
  • 点击是其他对象,判断所有输入框的值是否为空,是否显示或隐藏两个元素标签

HTML代码如下:

<div><div class="Account_img">    <div class="ion-person-stalker"></div> </div><input id="Account" name="Account" type="text" value="" placeholder="Username账户" class="valid">    <span class="show_placeholder" id="span1">Username账户</span></div>
<div>    <div class="password_img">        <div class="fa fa-key"></div>    </div><input data-val="true" data-val-required="请填写用户密码" id="Password" name="Password" type="password" placeholder="Password密码">    <span class="show_placeholder" id="span2">Password密码</span></div>

CSS代码略

JS代码如下:

<!--[if gte IE 8]>
<script type="text/javascript">
    $(document).click(function (e) {
        var e = e || window.event;
        var target = e.srcElement || e.target;
        if (target.id == ‘span1‘) {
            controll_input1();
            $(‘#Account‘).focus();

        } else if(target.id == ‘span2‘){
            controll_input2();
            $(‘#Password‘).focus();

        }else if(target.id=="Account"){
            controll_input1();
        }else if(target.id=="Password"){
            controll_input2();
        }else{
            if ($(‘#Account‘).val() == "") {
                $(‘#span1‘).show();
            }
            if ($(‘#Password‘).val() == "") {
                $(‘#span2‘).show();
            }
        }

    });

    function controll_input1(){
        $(‘#span1‘).hide();
        if ($(‘#Password‘).val() == "") {
            $(‘#span2‘).show();
        }
    }

    function controll_input2(){
        $(‘#span2‘).hide();
        if ($(‘#Account‘).val() == "") {
            $(‘#span1‘).show();
        }
    }

</script>
<style>
    .show_placeholder {
        display: inline-block;
    }

</style>
<![endif]-->
时间: 2024-08-10 19:06:23

ie8不兼容input的placeholder属性但是要实现其效果的方法的相关文章

input 的 placeholder属性在IE8下的兼容处理

placeholder是input标签的新属性,在使用的时候有两个问题: 1.IE8 下不兼容 处理思路: 如果浏览器不识别placeholder属性,给input添加类名placeholder,模仿placeholder属性的样式,并给input 的value赋值placeholder属性的值 2. input的type属性是password的情况,用上面的方法处理提示语为密码文 处理思路: 新添加一个标签,模仿placeholder属性 直接上代码: css部分: 1 .input-item

兼容IE8以下浏览器input表单属性placeholder不能智能提示功能,以及使用jquery.validate.js表单验证插件的问题处理

当前很多表单提示使用了表单属性placeholder,可这属性不兼容IE8以下的浏览器,我自己写了一个兼容处理js // 兼容IE8以下浏览器input不能智能提示功能 if(navigator.appName == "Microsoft Internet Explorer" && (navigator.appVersion.match(/7./i)=="7." || navigator.appVersion.match(/8./i)=="

[干货]兼容HTML5的Placeholder属性-更新版v0.10102013

HTML5对Web Form做了许多增强,比如input新增的type类型.Form Validation等.Placeholder是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失. 这里提供了Placeholder的兼容方法,更新如下: 1.将方法修改为node原生对象的继承对象2.兼容input类型为password的文本框3.提供样式名称作为参数,可以灵活设置样式,修正样式设置一处问题4.

ie8下修改input的type属性报错

摘要: 现在有一个需求如图所示,当用户勾选显示明文复选框时,要以明文显示用户输入的密码,去掉勾选时要变回密文,刚开始想到的就是修改输入框的type来决定显示明文还是密文,使用jQuery的attr来做试验,测试结果是chrome,Firefox,ie9+都是好的,在ie8以下就会报错,查找了下原因,ie8中是不允许修改input的type属性,最终换了种思路实现. 当勾选显示明文时替换输入框为type="text",不勾选时在将输入框替换为type="password&quo

ie兼容html5中placeholder属性

<!doctype html><html><head><meta charset="utf-8"><title>placeholder</title> <script id="jquery_183" type="text/javascript" class="library" src="C:/Users/Administrator/Desk

兼容ie10以下版本的placeholder属性

<script src="${ctx }/js/jquery.placeholder.js" type="text/javascript"></script> $(function() { $('input').placeholder();//兼容ie10下placeholder属性: }); js文件地址

Html5的placeholder属性(IE兼容)

HTML5对Web Form做了很多增强,比方input新增的type类型.Form Validation等. Placeholder是HTML5新增的还有一个属性,当input或者textarea设置了该属性后.该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失.曾经要实现这效果都是用JavaScript来控制才干实现 , firefox.google chrome等表示对其支持 , 只有IE存在违和感啊! 比如:  <input id="t1" type

ie中placeholder属性不支持,js解决

ie中placeholder属性不支持,js的解决方法: //placeholder属性在ie下兼容 function placeholder ( pEle , con ) { var pEle = pEle if( pEle.find("input,textarea").val() == "" ){ pEle.append("<i class='placeholder_ie'>"+con+"</i>"

让IE下支持Html5的placeholder属性

HTML5对Web Form做了许多增强,比如input新增的type类型.Form Validation等. Placeholder 是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文 字消失.以前要实现这效果都是用JavaScript来控制才能实现 , firefox.google chrome等表示对其支持 , 唯独IE存在违和感啊! 例如: <input id="t1" type