jQuery实现IE输入框完成placeholder标签功能的方法

本文实例讲述了jQuery实现IE输入框完成placeholder标签功能的方法。分享给大家供大家参考,具体如下:

如果在输入框加上placeholder="xx"属性,例如:

<input type="text" placeholder="请输入关键词"/>

则可以在谷歌浏览器等高级浏览器的输入框中实现替换文本的功能,也就是得到如下图所示的对话框:

但是这个属性在WIN7默认的浏览器IE8中无法兼容,更不要说IE6了。也就是说IE里面不支持placeholder这个标签。

不信的话,大可以把这段代码拉到IE8里面运行下试试,你只不过是得到一个空的对话框

在IE里面要实现这个要用组件失去焦点blur与得到焦点focus里面做,详细可以参考《JavaScript组件焦点与页内锚点间传值的方法》

其实可以完全不用jQuery,这里使用这是为了复习下《jQuery通过控制节点实现仅在前台通过get方法完成参数传递》

思想很简单,一开始这个文本框默认为#cccccc灰色字体,值为“请输入关键词”,当得到焦点之后,把它的颜色设置为#000000黑色,值为空,一旦其失去焦点,如果值为空,马上把其恢复默认的#cccccc灰色字体,值为“请输入关键词”

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>搜索输入框替换文本</title>
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
</head>
<body>
<form id="test">
  <input id="searchKeyword" type="text" maxlength="30" value="请输入关键词" style="color:#cccccc" />
</form>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(){
  var isthisnull = true ;
  $("#searchKeyword").focus(function(){
    if ($(this).val() == "请输入关键词" && isthisnull) {
      $(this).val("");
      $(this).attr("style","color:#000000");
      isthisnull = false;
    }
  });
  $("#searchKeyword").blur(function(){
    if ($(this).val() == "") {
      $(this).val("请输入关键词");
      $(this).attr("style","color:#cccccc");
      isthisnull = true;
    }
  });
});
</script>

这里注意的是,是加入一个isthisnull的布尔值来判断其是否为空,是为了判断用户是否要输入“请输入关键词”,

不能认为文本框里面有“请输入关键词”就是空,如果用户自己输入“请输入关键词”呢?

这里也不应该用jquery或者javascript来取color或者style的值是否为"#cccccc"或者“color:#cccccc”来判断,因为通过$(this).css("color")来取color,在不浏览器输出的结果是不一样的,而取style的话,ie会认为这是一个object,而不是字符串

设置一个isthisnull,也可以为后面进一步的表单验证做准备

最终在IE中得到如下效果:

更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery页面元素操作技巧汇总》、《jquery选择器用法总结》、《jQuery表单操作总结》、《jQuery常用插件及用法总结》、《jQuery表格(table)操作技巧汇总》、《jQuery扩展技巧总结》及《jQuery常见经典特效汇总》

希望本文所述对大家jQuery程序设计有所帮助。

时间: 2017-09-18

jQuery插件EnPlaceholder实现输入框提示文字

用法: 首先在head中分别引入jQuery及本插件 <script type="text/javascript" src="jquery-1.7.2.min.js">script> <script type="text/javascript" src="jquery.enplaceholder.js">script> 然后就可以调用鸟 //通过value模拟placeholder $('i

IE下支持文本框和密码框placeholder效果的JQuery插件分享

很久之前写了这个插件,基于jQuery实现的,主要用于IE下实现placeholder效果,可同时支持文本和密码输入框. placeholder是HTML5新增的一个属性,当input设置了该属性后,该值的内容将作为灰色提示显示在文本框中,当文本框获得焦点时,提示文字消失. 下载地址:http://xiazai.jb51.net/201501/other/placeholderfriend.rar 实现代码如下: 复制代码 代码如下: (function($) {   /**    * 没有开花

jQuery实现HTML5 placeholder效果实例

你一定知道 HTML5新增的 placeholder 属性吧?不知道的也没关系.输入框有默认文本是,常需要这样一个效果,点击让默认文本消失,失去焦点后让默认文本显示. 今天分享一段jQuery代码,模拟 placeholder 效果. Javascript代码: 复制代码 代码如下: function placeHolder(event){   var self = $(this), selfDataValue = self.attr("data-value"), selfValue

jQuery实现的placeholder效果完整实例

本文实例讲述了jQuery实现的placeholder效果.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

两种方法基于jQuery实现IE浏览器兼容placeholder效果

placeholder是HTML5<input>的属性之一,在不同的浏览器( 支持HTML5的现代浏览器 )中会有略微不同的显示效果: 在Chrome( v31.0.1650.63 m).Firefox( v21.0 ).360安全( v6.3 极速模式 )中,输入栏获得焦点后,提示文字并不消失,如图( Chrome ): 获得焦点前: 获得焦点时: 偏偏IE11要搞点特殊: 获得焦点前: 获得焦点时: 也就是说获得焦点时提示的文字会消失. 非现代浏览器( 例如 IE6-IE9 )是不支持pl

jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果

页面中的输入框默认的提示文字一般使用placeholder属性就可以了,即: <input type="text" name="username" placeholder="请输入用户名" value="" id="username"/> 最多加点样式控制下默认文字的颜色 input::-webkit-input-placeholder{color:#AAAAAA;} 但是在低版本的浏览器却不支

jQuery实现的一个自定义Placeholder属性插件

HTML5中文本框的新属性placeholder是个非常好用的属性,但是IE系列直至IE9都不支持这一属性,这就让大家在用这一属性的时候有些犹豫不决.自己曾经写过很多类似共的小控件,但是都不是很通用,这里分享一个渐进增强的自定义placeholder的jQuery插件.有点是使用简单,大家也可以根据自己的需要进行改进.平常写jQuery插件比较少,考虑到用jQuery的同学比较多,这里就用jQuery插件的形式编写了. 在这里简单的介绍一下实现思路. 1.表现与html5原生的placehold

jquery实现(textarea)placeholder自动换行

思路:利用文本框的聚焦和失焦事件 1.HTML结构 <textarea id="text1"></textarea> 2.js方法 <script> var placeholder = '第一行文本提示\n第二行文本提示\n第三行文本提示'; $('#text1').val(placeholder); $('#text1').focus(function() { if ($(this).val() == placeholder) { $(this).

基于jQuery的让非HTML5浏览器支持placeholder属性的代码

效果图:http://code.google.com/p/jquery-placeholder-js/ 演示代码:http://demo.jb51.net/js/2011/jqueryplaceholder/打包下载:http://xiazai.jb51.net/201105/yuanma/jqueryplaceholder.rar

使用jQuery快速解决input中placeholder值在ie中无法支持的问题

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="

jquery 判断是否支持Placeholder属性的方法

实例如下: //placeholder兼容性 function isPlaceholer(){ var input = document.createElement('input'); return "placeholder" in input; } 该函数的结果返回 true or false 以上这篇jquery 判断是否支持Placeholder属性的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

让低版本浏览器支持input的placeholder属性(js方法)

复制代码 代码如下: var doc = window.document, input = doc.createElement('input'); if( typeof input['placeholder'] == 'undefined' ) // 如果不支持placeholder属性 { $('input').each(function( ele ) { var me = $(this); var ph = me.attr('placeholder'); if( ph && !me.v

对象不支持indexOf属性或方法的解决方法(必看)

var divarr = ["a","b","c","d"]; 判断divarr 数组中是否存在a divarr.indexOf("a")==-1    在ie8下会提示对象不支持indexOf属性或方法 解决办法: 用jquery里的$.inArray替代indexOf $.inArray("a", divarr)==-1 以上这篇对象不支持indexOf属性或方法的解决方法(必看)就

jQuery判断是否存在滚动条的简单方法

利用jQuery控制滚动条滚动,再判断滚动条是否有偏移.如果有,则存在滚动条,相反没有滚动就不存在. <script type="text/javascript"> $(function(){ $("body").scrollTop(10);//控制滚动条下移10px if( $("body").scrollTop()>0 ){ alert("有滚动条"); }else{ alert("没有滚动条&

jQuery 操作 HTML 元素和属性的方法

jQuery拥有操作 HTML 元素和属性的强大方法. 1. 获取HTML 元素的内容和属性 (1) 获得内容:  text().html() 以及 val()方法 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>My Test JQuery&l

jquery判断滚动条距离顶部的距离方法

实例如下: // 滑动滚动条 $(window).scroll(function(){ // 滚动条距离顶部的距离 大于 200px时 if($(window).scrollTop() >= 200){ $(".scroll_top").fadeIn(1000); // 开始淡入 } else{ $(".scroll_top").stop(true,true).fadeOut(1000); // 如果小于等于 200 淡出 } }); 以上这篇jquery判断

VBScript提交表单提示-对象不支持此属性或方法

今天因需要客户端得用VBScript对表单进行处理.提交,然而在提交表单时老是出错,错误信息为:"对象不支持此属性或方法".后查资料得知: 引用内容 除了表单提交按钮,页面中不允许再有一个表单项名字为submit 改下名字,果然没问题了,汗. 以前用Javascript都没碰过这样的问题:Dreamweaver插入按钮时名字默认的都是Submit[n],以后用VBScript得注意改名!

对象不支持此属性或方法: Session.CodePage = 936 解决方法

今天调试网站时在后台出现这样的错误,"Microsoft VBScript 运行时错误 '800a01b6' 对象不支持此属性或方法: 'Session.CodePage'" 在百度搜索查看到的答案又不是很全,大多都是含糊不清的.后来我自己研究了一下,原来还有个比较快的方法! 如果你出现以下信息: Microsoft VBScript 运行时错误 '800a01b6' 对象不支持此属性或方法: 'Session.CodePage' \include\sysCode.asp, line

jQuery判断一个元素是否可见的方法

本文实例讲述了jQuery判断一个元素是否可见的方法.分享给大家供大家参考.具体如下: jQuery 可以很容易地确定一个元素是可见的或是隐藏的,然后分别做不同的处理.如:我想根据某 div 是否可见,在按钮上显示不同的文字和图标.可以这样实现: 方法一: $('#para_div button').click(function() { if($(this).next().is(":visible")) { //$(this).html('显示'); $(this).css({&quo

jquery判断单选按钮radio是否选中的方法

本文实例讲述了jquery判断单选按钮radio是否选中的方法.分享给大家供大家参考.具体如下: html代码如下: <input type="radio" id="d1" name="ra" value="a" checked="checked" /> <input type="radio" id="d2" name="ra"