I am salesforce (SFDC) developer. In my visualforce page for input box I am using placeholder code.
As IE9 doesn't support the placeholder attribute, you can do it in Javascript/jQuery like so (quickly written, not tested):
if(navigator.appVersion.match(/MSIE [\d.]+/)){
var placeholderText = 'Some Placeholder Text';
$('#first_name').val(placeholderText);
$('#first_name').blur(function(){
$(this).val() == '' ? $(this).val(placeholderText) : false;
});
$('#first_name').focus(function(){
$(this).val() == placeholderText ? $(this).val('') : false;
});
}
Do the same for the blur event too, then that will mimic a placeholder attribute.
[Edit]
Okay, after rethinking this (due to the comment) this is really not the most elegant solution (however it does work), so I would disregard this answer totally.
A little simpler answer worked for me not being very trusting of Regex (my downfall)
function setPlaceHolderForIE9() {
var pos = window.navigator.userAgent.indexOf("MSIE");
if (pos > 0) {
if (window.navigator.userAgent.substring(pos + 5, window.navigator.userAgent.indexOf(".", pos)) < 10) {
//alert($("input[placeholder]").val($("input[placeholder]").attr("placeholder")));
$("input[placeholder]").each(function () {
$(this).val($(this).attr("placeholder"));
});
$("input[placeholder]").click(function () {
if ($(this).val() === $(this).attr("placeholder")) {
$(this).val('');
}
});
$('input[placeholder]').blur(function () {
if ($.trim($(this).val()).length === 0) {
$(this).val($(this).attr("placeholder"));
}
});
}
}
}
if(navigator.appVersion.match(/MSIE [\d.]+/)){
$(document).find("input[placeholder]").each(function(){
if($.trim($(this).val()) == ""){
$(this).val($(this).attr("placeholder")).addClass('placeholder');
}
$(this).on("focus",function(){
$(this).hasClass('placeholder') ? $(this).val('').removeClass('placeholder') : false;
}).on("blur",function(){
$(this).val() == '' ? $(this).val($(this).attr("placeholder")).addClass('placeholder') :false;
});
});
}