Javascript 选择选项时更改输入的占位符

Javascript 选择选项时更改输入的占位符,javascript,jquery,html,Javascript,Jquery,Html,我一直在尝试一些jQuery编码,但似乎不起作用。在#vat输入中,我需要更改占位符 <select id="VatExpense"> <option value="" disabled selected></option> <option value="0"></option> <option value="1"></option> <

我一直在尝试一些jQuery编码,但似乎不起作用。在
#vat
输入中,我需要更改占位符

    <select id="VatExpense">
        <option value="" disabled selected></option>
        <option value="0"></option>
        <option value="1"></option>
        <option value="0"></option>
        <option value="0"></option>
        <option value="1"></option>
    </select>

   <input type="text" id="vat" placeholder="Rate">

您可以这样做:

(function() {
    var placeholders = {
        'value_':'Rate',
        'value_0':'Standard rate 20%',
        'value_1':'Zero Rate 0%'
    };
    $("#VatExpense").on('change', function(e) {   
       $("#vat").prop('placeholder', placeholders['value_' + $(this).val() ]);        
    });
})();
使用
attr()

您可以尝试以下方法:

Jquery:

$("#VatExpense").on("change", function() {
    var vatExpense = $("#VatExpense option:selected").val();
    var vatPlaceholder = "Rate";
    if (vatExpense == 0) {
        vatPlaceholder = "Standard rate 20%";
    } else if (vatExpense == 1) {
        vatPlaceholder = "Zero Rate 0%";
    }
    $("#vat").attr("placeholder", vatPlaceholder);
});

jsiddle:

您应该使用
数据-
属性,而不是
值来确定费率

HTML:


费用类型
电话
公共交通及的士
电脑耗材
生存
海外旅行

然后在jQuery中读取它们,并相应地更改占位符

脚本:

<script type="text/javascript">
   $(function(){
      $("#VatExpense").change(function(){
         $("#vat").attr("placeholder", $(this).find(":selected").data("rate") + "%");
      });
   });
</script>

$(函数(){
$(“#VAT费用”).更改(函数(){
$(“#vat”).attr(“占位符”,$(this).find(“:selected”).data(“rate”)+“%”;
});
});

问题出在哪里?而且value属性应该是唯一的!但是如果文本属性不重要,那么您可以这样做。在哪里尝试一些jQuery编码代码?我需要在选择选项时更改#vat输入占位符。当我选择一个value=0的选项时,#vat的占位符应该改为20%,如果value=1,则改为0%@Legendsdo你想用原生js还是手头有jQuery?我想这是一个比较好的地方。不是吗?
<select id="VatExpense">
    <option data-rate="20" value="" disabled selected>Expense Type</option>
    <option data-rate="20" value="0">Telephone</option>
    <option data-rate="0" value="1">Public Transport & Taxis</option>
    <option data-rate="20" value="2">Computer Consumables</option>
    <option data-rate="20" value="3">Subsistence</option>
    <option data-rate="0" value="4">Overseas Travel</option>
</select>
<script type="text/javascript">
   $(function(){
      $("#VatExpense").change(function(){
         $("#vat").attr("placeholder", $(this).find(":selected").data("rate") + "%");
      });
   });
</script>