-1

I have a selectbox with couple of options to be selected by the user, when the user selects "First Name ", I want to the placeholder text 'Enter your First Name' to be appear beside the textbox. please find my piece of my code below:

HTML:

<select id="selectionType">
<option value="-1">Select One</option>
<option value="0">First Name</option>
<option value="1">Last Name</option>

JS:

    var placeholderText = {"First Name":"Enter your First Name","Last Name":"Enter your Last Name"};

$("#selectionType").on("change",function() {
    var selection = document.getElementById("selectionType");
    var inputBox = document.getElementById("inputBox");

    var selectedVal = $('#selectionType').find(':selected').text();
    if (placeholderText[selectedVal] !== undefined) {
        inputBox.placeholder = placeholderText[selectedVal];
    }
});

It works fine in Chrome and FF, but it fails in IE 8 & 9... Any help on this.

See Demo : http://jsfiddle.net/sW6QP/6/

Ramkumar
  • 446
  • 1
  • 14
  • 30
  • 2
    IE 8,9 DO NOT support placeholders. **[Check this for a solution](http://stackoverflow.com/q/15020826/3639582)** – Shaunak D Aug 01 '14 at 09:02

3 Answers3

2

Use jQuery Placeholder to support in IE 8 & 9.

because IE 8 and 9 don't support html5 placeholder and only support in IE 10.

Ref: http://www.w3schools.com/Tags/att_input_placeholder.asp

Shaunak D
  • 20,588
  • 10
  • 46
  • 79
yeyene
  • 7,297
  • 1
  • 21
  • 29
2

try

 var placeholderText = {
    "First Name": "Enter your First Name",
    "Last Name": "Enter your Last Name"
};

$("#selectionType").on("change", function () {

    if (this.value != -1) {
        $("#inputBox").val(placeholderText[$("#selectionType option:selected").text()]);
    } else {
        $("#inputBox").val("");
    }

});

UPDATED DEMO

Balachandran
  • 9,567
  • 1
  • 16
  • 26
0

Your brand new code:

var placeholderText = {"First Name":"Enter your First Name","Last Name":"Enter your Last Name"};
$("#selectionType").on("change",function() {
    var selection = $("#selectionType");
    var inputBox = $("#inputBox");

    var selectedVal = $(':selected', selection).text();
    if (placeholderText[selectedVal] !== undefined) {
        inputBox..attr('placeholder', placeholderText[selectedVal]);
    }
});

It should solve your problem

Shaunak D
  • 20,588
  • 10
  • 46
  • 79
michail_w
  • 4,318
  • 4
  • 26
  • 43