2011-10-05 67 views
3

我需要做一些計算基於運輸選項。對於這個例子我只是想要alert()的新價格。我想添加6%到選定的費用和alert()它。我真的不能修改以下HTML,但它增加了selected如果其中一個選項被選中:jQuery檢查是否選擇val和選擇,做數學和警報

<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) + " "); }); 
    }       
}); 
+0

這工作我會發布答案謝謝! – ToddN

回答

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) + " "); }); 
     } 
    });      
}); 

是你的出發點,雖然你可能需要更加具體地說明一般情況下使用的選項。

+0

ahhh是的,這也適用。我用$(document).ready(function(){$(「select」)。change(function(){(option [value ='701']:selected「)。 (isPrice = $(this).text()。replace(「UPS Ground $」,「」); var parsedShip = parseFloat 2)+「「); }); }); });' – ToddN

+0

發生了什麼我的實際頁面上是該警示popsup那麼頁面選擇的選項刷新。有沒有辦法做到這一點,所以重新加載後警報會彈出? – ToddN

+0

NVM我知道了,謝謝。 – ToddN