简体   繁体   English

选择不同的下拉菜单选项时,输入字段值将更改

[英]input field value to change upon selection of different dropdown menu options

I am creating an order form, using HTML, where I need to add a dropdown menu for 'which color' and a corresponding input field, which will be read-only, for the 'amount'. 我正在使用HTML创建订单,需要在其中添加“颜色”下拉菜单和“金额”对应的输入字段(只读)。 Creating the order form is easy but now what I want is that I want the 'amount' value to change depending on which 'color' has been selected from the 'which color' dropdown menu. 创建订单很容易,但是现在我想要的是根据要从“哪种颜色”下拉菜单中选择哪种“颜色”来更改“金额”值。 Lets say that we've five options inside the 'which color' dropdown menu, namely: 假设我们在“哪种颜色”下拉菜单中有五个选项,分别是:

  1. Black 黑色
  2. White 白色
  3. Blue 蓝色
  4. Green 绿色
  5. Orange 橙子
 <select id="color"> <option value="Black">Black</option> <option value="White">White</option> <option value="Blue">Blue</option> <option value="Green">Green</option> <option value="Orange">Orange</option> </select> 

And that each color has a corresponding amount set, for example: 并且每种颜色都有对应的数量设置,例如:

  1. Black = $100 黑色= $ 100
  2. White = $200 白色= $ 200
  3. Blue = $300 蓝色= $ 300
  4. Green = $400 绿色= $ 400
  5. Orange = $500 橙色= $ 500

Now what I want is that I want the input field for 'amount' to show different values when different options of colors are selected from the dropdown. 现在我想要的是,当从下拉列表中选择不同的颜色选项时,我希望“金额”的输入字段显示不同的值。 For example if the color 'blue' is selected, then the value '$300' should be shown in the read-only input field for amount and it should keep on changing depending on which option is selected. 例如,如果选择了颜色“蓝色”,则值“ $ 300”应显示在金额的只读输入字段中,并且应根据选择的选项不断变化。

I am presuming that this can be done using javascript but as I am fairly new to this, I am finding it a bit difficult. 我以为可以使用javascript完成此操作,但是由于我对此还很陌生,因此我发现它有点困难。 This is how the basic form would look: 这是基本形式的外观:

 <form action="#" method="post"> <select id="color"> <option value="Black">Black</option> <option value="White">White</option> <option value="Blue">Blue</option> <option value="Green">Green</option> <option value="Orange">Orange</option> </select> <input name="amount" value="" readonly="readonly" onfocus="this.blur()" /> </form> 

Looking forward to get a solution. 期待获得解决方案。 Thanks. 谢谢。

This is a relatively simple solution, for up-to-date browsers, and should give you a starting point to work from: 对于最新的浏览器,这是一个相对简单的解决方案,应为您提供一个从以下位置开始的起点:

function updatePrice (el, priceLog, priceList) {
    priceLog.value = '$' + priceList[el.getElementsByTagName('option')[el.selectedIndex].value.toLowerCase()];
}

var colorPrices = {
    'black' : 100,
    'white' : 200,
    'blue' : 300,
    'green' : 400,
    'orange' : 500
};

var select = document.getElementById('color'),
    hidden = document.getElementsByName('amount')[0];

select.addEventListener('change', function(){
    updatePrice(select, hidden, colorPrices);
});

JS Fiddle demo . JS小提琴演示

Try this : 尝试这个 :

<form action="#" method="post">
<select id="color" onchange="func()">
 <option value="Black">Black</option>
 <option value="White">White</option>
 <option value="Blue">Blue</option>
 <option value="Green">Green</option>
 <option value="Orange">Orange</option>   </select>
<input name="amount" id ="valu" value="" readonly="readonly" />
</form>

Javascript : Javascript:

function func() {
    var option = document.getElementById("color").value;
    if (option =='Black')
    {
    $('#valu').val(100);
    }
        if (option =='White')
    {
    $('#valu').val(200);
    }
        if (option =='Blue')
    {
    $('#valu').val(300);
    }

        if (option =='Green')
    {
    $('#valu').val(400);
    }

        if (option =='Orange')
    {
    $('#valu').val(500);
    }


};

JSFiddle JSFiddle

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM