jQuery检查选项值是否已选中,进行数学和警报

时间:2011-10-05 21:44:47

标签: jquery option selected

我需要根据运输选项进行一些计算。对于这个例子,我只想alert()新价格。我想为所选费用添加6%,并alert()。我无法真正修改下面的html,但如果选择了其中一个选项,则会添加selected

<select name="ShippingSpeedChoice" onchange="this.form.submit();">
<option value="0">PLEASE SELECT</option>
<option value="701">UPS Ground $9.90 </option>
<option value="703">UPS 3Day Select® $30.88 </option>
</select>

因此,如果选择了选项值701,我想要一个显示总计9.90 * 1.06 .... 10.49的警报。目前无论选择什么,它都会显示它。 (即<option value="703" selected>UPS 3Day Select® $30.88 </option>警报将为此弹出,它不应该弹出。有什么想法吗?

$(document).ready(function() {
  if ($("option[value='701']:selected")) {
    $("option[value='701']").each(function () {                                           
        var isthePrice = $(this).text().replace("UPS Ground $", "");
        var parsedShip = parseFloat(isthePrice);
        var doMath = parsedShip * 1.06;
        alert(doMath.toFixed(2) + " "); });
  }                        
});

1 个答案:

答案 0 :(得分:2)

您正在询问在DOM准备就绪时是否选择了该值。无论何时更改选项,都需要绑定事件处理程序以运行脚本。

$(document).ready(function() {
    $("select").bind("change", function(){
      if ($("option[value='701']:selected", this)) {
        $("option[value='701']").each(function () {                                           
            var isthePrice = $(this).text().replace("UPS Ground $", "");
            var parsedShip = parseFloat(isthePrice);
            var doMath = parsedShip * 1.06;
            alert(doMath.toFixed(2) + " "); });
      }
    });                     
});

是您的出发点,尽管您可能需要更具体地使用普通案例中使用的选项。