JSFiddle - React, Tailwind, and code Playground
by camel2243
HTML
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha256-/SIrNqv8h6QGKDuNoLGA4iret+kyesCkHGzVUUV0shc="></script>
<div>
<input type="text" placeholder="email"/>
</div>
CSS
div{
padding:8px 13px;
}
input.focus
{
color: #aaa;
}
JavaScript
var PLACEHOLDER="email";
// detect if IE6-IE11 browser(duck typing), user-agent not reliable
var isIE = false || !!document.documentMode;
if(isIE)
{
input=$('input');
// register event listener
input.on('focus', function(){
updateInput(input);
}).on('click', function(){
updateInput(input);
}).on('keydown', function(){
}).on('keyup', function(){
updateInput(input);
});
}
function updateInput(inputElem)
{
console.log(inputElem.val());
if(!inputElem.val() || inputElem.val() === PLACEHOLDER)
{
inputElem.addClass('focus');
inputElem.val(PLACEHOLDER);
setCursorStart(input.get(0));
}
else
{
inputElem.removeClass('focus');
}
}
function setCursorStart(inputElem)
{
if(inputElem.setSelectionRange)
{
inputElem.focus();
inputElem.setSelectionRange(0, 0);
}
else
{
if (inputElem.createTextRange)
{
var range = inputElem.createTextRange();
range.collapse(true);
range.moveEnd('character', 0);
range.moveStart('character', 0);
range.select();
}
}
}