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

  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代码如下:

<!--[]>
<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]-->

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

  1. 解决input标签placeholder属性浏览器兼容性问题的一种方法

    为文本框input添加文字输入提示,H5为input提供了一个placeholder属性.在支持H5的浏览器中,用此属性设置输入提示,简单方便,但是对于IE8以下版本,都不支持placeholder属 ...

  2. Hmtl5 <input>中placeholder属性(新属性)

    Hmtl5 <input>中placeholder属性(新属性) 一.定义和用法 placeholder 属性提供可描述输入字段预期值的提示信息(hint). 该提示会在输入字段为空时显示 ...

  3. 兼容IE8以下浏览器input表单属性placeholder不能智能提示功能

    当前很多表单提示使用了表单属性placeholder,可这属性不兼容IE8以下的浏览器,我自己写了一个兼容处理js // 兼容IE8以下浏览器input不能智能提示功能 if(navigator.ap ...

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

    placeholder是input标签的新属性,在使用的时候有两个问题: 1.IE8 下不兼容 处理思路: 如果浏览器不识别placeholder属性,给input添加类名placeholder,模仿 ...

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

    HTML5对Web Form做了许多增强,比如input新增的type类型.Form Validation等.Placeholder是HTML5新增的另一个属性,当input或者textarea设置了 ...

  6. 修改 input / textarea placeholder 属性的颜色和字体大小

    话不多说,直接上代码: input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #666; fon ...

  7. 前端 html input标签 placeholder属性 标签上显示内容

    前端 html  input标签 的placeholder属性  标签上显示内容 <!DOCTYPE html> <html lang="en"> < ...

  8. ie8下修改input的type属性报错

    摘要: 现在有一个需求如图所示,当用户勾选显示明文复选框时,要以明文显示用户输入的密码,去掉勾选时要变回密文,刚开始想到的就是修改输入框的type来决定显示明文还是密文,使用jQuery的attr来做 ...

  9. IE678910不兼容H5的placeholder属性,需要JS解决

    两种方法的思路 一.使用input的value作为显示文本 二.不使用value,添加一个额外的span标签,绝对定位覆盖到input上面. 两种方式各有优缺点,方法一占用了input的value属性 ...

随机推荐

  1. 关于CoreData的理解和使用.

    CoreData是苹果官方推出的一种方便的面向对象的存储方式,相信大家都已经对其有所了解,但是对于CoreData的概念大家都存在部分的误区.给大家推荐个网址是苹果的官方文档的翻译版(http://o ...

  2. 记录一个js切换随机背景颜色的代码

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  3. CheckBoxPreference组件

    CheckBoxPreference 选中为true 取消选中为false 它的值会以boolean的形式储存在SharedPreferences中. <?xml version="1 ...

  4. HTML5 Web Workers来加速您的移动Web应用

    一直以来,Web 应用程序被局限在一个单线程世界中.这的确限制了开发人员在他们的代码中的作为,因为任何太复杂的东西都存在冻结应用程序 UI 的风险.通过将多线程引入 Web 应用程… 在本文中,您将使 ...

  5. 编写javascript的基本技巧

    第一.编写可维护的代码 什么叫着编写可维护的代码呢?就是当我的做出来的项目,拿给其它编码团队能很快的看懂 你编写的代码,你的整个项目的逻辑等等.一个项目的修改维护是要比开发一个项目的成本 是要高的.例 ...

  6. Apache Thrift入门(安装、测试与java程序编写)

    安装Apache Thrift ubuntu linux运行: #!/bin/bash #下载 wget http://mirrors.cnnic.cn/apache/thrift/0.9.1/thr ...

  7. C# DropDownList绑定文件夹

    首先创建一个类,类名称为FileControl, /// <summary> /// 获取制定文件夹下面的文件夹 /// </summary> /// <param na ...

  8. Oracle数据库按属性成绩查询

    create or replace function bb return nvarchar2as-----------自定义游标类型type class_student is record( snam ...

  9. Bootstrap插件——(Tab)标签页

    项目中用到了Bootstrap的(Tab)标签页插件,记录如下: 代码如下: <div class="tabbable"> <ul class="nav ...

  10. boost信号量 boost::interprocess::interprocess_semaphore的用法

    使用方法首先给信号量初始化赋值,可以根据需要设定需要的值,之前在写项目的过程中用这个控制下载的线程个数. boost::interprocess::interprocess_semaphore m_s ...