Home  >  Article  >  Web Front-end  >  jQuery implements IE input box to complete placeholder tag code sharing

jQuery implements IE input box to complete placeholder tag code sharing

小云云
小云云Original
2018-02-05 13:07:461065browse

This article mainly introduces how jQuery implements the placeholder tag function of the IE input box, involving jQuery event response and dynamic operation of page element attributes. Friends who need it can refer to it. I hope it can help everyone.

If you add the placeholder="xx" attribute to the input box, for example:


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

, you can wait on Google Chrome The function of replacing text is implemented in the input box of the advanced browser, that is, the dialog box shown below is obtained:

But this attribute is in the default browser IE8 of WIN7 Incompatible, let alone IE6. In other words, the placeholder tag is not supported in IE.

If you don’t believe it, you can pull this code and run it in IE8 and try it. You will just get an empty dialog box

To achieve this in IE, you need to use component loss Focus blur and get focus are done in focus. For details, please refer to "Methods for Passing Values ​​Between JavaScript Component Focus and In-page Anchor Points"

In fact, you can do without jQuery at all. This is used here to review "jQuery Control Through The node implementation only completes parameter transfer in the foreground through the get method》

The idea is very simple. At the beginning, this text box defaults to #cccccc gray font and the value is "Please enter the keyword". After getting the focus, put it The color is set to #000000 black and the value is empty. Once it loses focus, if the value is empty, it will be restored to the default #cccccc gray font. The value is "Please enter keywords"

The code is as follows:


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

Note here that a Boolean value of isthisnull is added to determine whether it is empty, in order to determine whether the user wants to enter "Please enter the keyword",

You cannot think that if there is "Please enter keywords" in the text box, it is empty. What if the user enters "Please enter keywords" himself?

You should not use jquery or javascript here to determine whether the value of color or style is "#cccccc" or "color:#cccccc", because $(this).css(" color") to get color, the output results will be different depending on the browser, and if you get style, IE will think it is an object, not a string

Set an isthisnull, also You can prepare for further form validation

Finally, you will get the following effect in IE:

##Related recommendations:

Detailed explanation of how to use placeholder in React Native

jQuery encapsulated placeholder example code

Detailed introduction to HTML5 Placeholder attribute


The above is the detailed content of jQuery implements IE input box to complete placeholder tag code sharing. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn