根据下拉选择更改占位符文本?

Posted

技术标签:

【中文标题】根据下拉选择更改占位符文本?【英文标题】:Change placeholder text based on the dropdown selection? 【发布时间】:2014-09-24 10:31:30 【问题描述】:

我有一个选择框,其中有几个选项可供用户选择,当用户选择“名字”时,我希望占位符文本“输入您的名字”出现在文本框旁边。 请在下面找到我的一段代码:

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];
    
);

它在 Chrome 和 FF 中运行良好,但在 IE 8 和 9 中失败... 对此有任何帮助。

查看演示:http://jsfiddle.net/sW6QP/6/

【问题讨论】:

IE 8,9 不支持占位符。 Check this for a solution 【参考方案1】:

在 IE 8 和 9 中使用 jQuery Placeholder 支持。

因为 IE 8 和 9 不支持 html5 占位符,仅在 IE 10 中支持。

参考:http://www.w3schools.com/Tags/att_input_placeholder.asp

【讨论】:

我将使用 jquery 库作为占位符来让它工作......谢谢【参考方案2】:

试试

 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

【讨论】:

【参考方案3】:

您的全新代码:

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]);
    
);

应该能解决你的问题

【讨论】:

以上是关于根据下拉选择更改占位符文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 selectize.js 下拉菜单的占位符?

如何根据它是不是是占位符来更改 textarea 文本的颜色?

Tailwind CSS 更改占位符选项的文本颜色

使用元素 ui 选择显示占位符值

Vue.js 根据 v-model 值更改文本输入的占位符

Woocommerce Checkout:在国家下拉列表中添加占位符[重复]