使用jQuery更改标签的值

109*_*793 20 jquery drop-down-menu

我有一个标签,costLabel.

我希望能够做的是根据下拉列表的选定值更改此标签的值.

这是我的HTML:

<table>
  <tr>
    <td width="343">Package*</td>

    <td colspan="4">
      <select class="purple" name="package">
        <option value="standard">Standard - &euro;55 Monthly</option>
        <option value="standardAnn">Standard - &euro;49 Monthly</option>            
        <option value="premium">Premium - &euro;99 Monthly</option>
        <option value="premiumAnn" selected="selected">Premium - &euro;89 Monthly</option>            
        <option value="platinum">Platinum - &euro;149 Monthly</option>
        <option value="platinumAnn">Platinum - &euro;134 Monthly</option>            
      </select>
    </td>

  <tr>
    <td width="343">
      <p>We bills quarterly/annually in advance</p>
      <p>See <a href="#dialog" name="modal">Pricing</a> for more details</p>
    </td>
    <td colspan="4"><label id="costlabel" name="costlabel">Total Cost:</label></td>

  <tr>
</table>
Run Code Online (Sandbox Code Playgroud)

进入成本标签的值是

  • 标准="每季度165欧元"
  • StandardAnn ="每年588欧元"
  • 保费="每季度297欧元"
  • PremiumAnn ="每年1068欧元"
  • 白金="每季度447欧元"
  • PlatinumAnn ="每年1608欧元"

我确实有以下代码根据下拉菜单计算成本,但注册表单后来变得更简单(即折扣选择没有消失),我在调整jQuery时遇到了一些麻烦.有人可以帮忙吗?

$(function() {
  $("#discountselection, select[name=package], input[name=discount]").
    change(function() {
      var
        selected_value = $("#discountselection").val(),
        discount = [12, 24, 36],
        package = $("select[name=package]").val(),
        package_prices = {'standard': 49, 'premium': 85, 'platinum': 134 },
        cost = package_prices[package] * discount[selected_value-1];

      $("#costlabel").val(cost);
    });
});
Run Code Online (Sandbox Code Playgroud)

Dav*_*mas 29

我似乎对你的html结构有一个盲点,但我认为这就是你正在寻找的.它应该从select输入中找到当前选择的选项,将其文本分配给newVal变量,然后将该变量应用于标签的value属性#costLabel:

jQuery的

$(document).ready(
  function() {
    $('select[name=package]').change(
      function(){
        var newText = $('option:selected',this).text();
        $('#costLabel').text('Total price: ' + newText);
      }
      );
  }
  );
Run Code Online (Sandbox Code Playgroud)

HTML:

  <form name="thisForm" id="thisForm" action="#" method="post">
  <fieldset>
    <select name="package" id="package">
        <option value="standard">Standard - &euro;55 Monthly</option>
        <option value="standardAnn">Standard - &euro;49 Monthly</option>            
        <option value="premium">Premium - &euro;99 Monthly</option>
        <option value="premiumAnn" selected="selected">Premium - &euro;89 Monthly</option>            
        <option value="platinum">Platinum - &euro;149 Monthly</option>
        <option value="platinumAnn">Platinum - &euro;134 Monthly</option>   
    </select>
  </fieldset>

    <fieldset>
      <label id="costLabel" name="costLabel">Total price: </label>
    </fieldset>
  </form>
Run Code Online (Sandbox Code Playgroud)

上面的工作演示:JS Bin