react input placeholder attribute examples
Placeholders are a piece of text displayed in input controls on a form. This was introduced in Html5. Ideally, these can be used to have a better user experience during form handling. Let’s declare place holder in Html5
<input type="text" placeholde="placeholder text" />
Placeholder attributes can be defined for input form controls like text, text area, and select.
You can check my previous available post:
This tutorial covers the following examples with an explanation.
How to change placeholder text from react props dynamically
You need to pass placeholder text from Parent to child components when you are designing reusable input components like text controls. In this example, placeholder text is passed from parent to child component via react props object.
Let’s define a child component called TextControl.js
import React, { Component } from "react";
export default class TextControl extends Component {
constructor(props) {
super(props);
}
render() {
const { name, placeholderString } = this.props.data;
return <input type="text" name={name} placeholder={placeholderString} />;
}
}
In the parent component - InputForm.js uses TextControl component.
In the parent component,
Placeholder text and name are initialized in state object with input control name and placeholder text
name and placeholder are passed to the text control component as props.
In the TextControl component, read these values from the prop and assign these values to an input component.
This is how props values are updated to placeholder text dynamically
name = { name }; placeholder = { placeholderString };
Here is the complete component code
import React, { Component } from "react";
import TextControl from "./TextControl";
export default class InputForm extends Component {
constructor() {
super();
this.state = {
name: "email",
placeholder: "Please enter email",
};
}
render() {
return (
<TextControl
name={this.state.email}
placeholderString={this.state.placeholder}
/>
);
}
}
change input placeholder text color styles in reactJS
Changing Placeholder color is not simple, as a placeholder is a non-standard implementation
placeholder
CSS pseudo-class enables to change of the styles of a displayed default text in input form control. It has different vendor implements that you need to declare separately.
Create a style.css file for styles
/* for Opera,webkit chrome browsers */
input::-webkit-input-placeholder {
color: red;
}
/*firefox 19+ versions*/
input::-moz-placeholder {
color: red;
}
/*IE versions*/
input::-ms-placeholder {
color: red;
}
/*Latest modern browsers */
input::placeholder {
color: red;
}
import React, { Component } from "react";
import "../index.css";
export default class TextControl extends Component {
constructor(props) {
super(props);
}
render() {
const { name, placeholderString } = this.props;
return <input type="text" name={name} placeholder={placeholderString} />;
}
}
Adding font awesome icon to input placeholder in react
This example is to add a font awesome icon inside an input form placeholder text.
First, Install font-awesome dependency in an application using the npm command
npm install --save font-awesome
Next, include font awesome CSS files into index.js or your component.
import "../node_modules/font-awesome/css/font-awesome.min.css";
Finally, In a component, Placeholder text add with fontawesome icon unicode inside placeholder text.
import React, { Component } from "react";
import "../index.css";
export default class IconINput extends Component {
render() {
return <input type="text" placeholder=" Username" />;
}
}
Add below font-family to style file index.css
input {
font-family: FontAwesome;
}
Output :