2015-11-17 60 views
0

我期待根據兩個變量創建在線報價。Javascript在線報價功能

用戶需要輸入郵編,然後從下拉列表中選擇一個項目(1,2或3)。每個下拉菜單都有不同的費用(£10.00,£20.00和£30.00)。

用戶必須輸入他們的郵編,選擇1/2/3,然後按「獲取報價」。

如果他們的郵編不是以B開頭,然後是數字,那麼文字必須出現,告知我們沒有遞送到這個區域。如果郵政編碼在B1-B99範圍內,則文字必須出現,說明費用是10英鎊/ 20英鎊/ 30英鎊,取決於他們選擇的下拉項目。

我已經設法讓下拉和價格警報正常工作,但我不確定如何將郵政編碼功能集成在此之上(同時我不希望提醒我想讓費用出現在按鈕下方)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 
<div id="quote" style="padding:5%;"> 
Gain an online quotation for your skip!</center> 
<form name="priceCalc" action=""> 
<input class="form-control input-box" id="postcode1" type="text"   name="postcode" placeholder=""> 
<select name="Product"> 
<option value="Please Select">Please Select</option> 
<option value="10">1</option> 
<option value="20" >2</option> 
<option value="30">3</option> 
</select> 
<input type="button" value="Get Quote" onclick="price();"><br> 
</form> 
<script> 
    function price() { 
    var Amt = document.priceCalc.Product; 
    var price = Amt.value; 
    alert(price); 
} 
</script> 
</body> 
</html> 

任何幫助將不勝感激,我不是Javascript專家,但這是一個竊聽我!由於

+0

你只顯示B1-B99郵編。請檢查。 –

回答

0

您可以使用正則表達式來檢查郵編。

/[B][1-9]-[B][0-99]/ 

事情是這樣的:

<div id="quote" style="padding:5%;"> 
 
    Gain an online quotation for your skip! 
 
    <form name="priceCalc" action=""> 
 
    <input class="form-control input-box" id="postcode1" type="text" name="postcode" placeholder=""> 
 
    <select name="Product"> 
 
     <option value="Please Select">Please Select</option> 
 
     <option value="10">1</option> 
 
     <option value="20">2</option> 
 
     <option value="30">3</option> 
 
    </select> 
 
    <input type="button" value="Get Quote" onclick="price()" /><span id="priceOut"></span> 
 
    <br/> 
 
    </form> 
 
</div> 
 
<script> 
 
    function price() { 
 
    var postcode = document.priceCalc.postcode; 
 
    var Amt = document.priceCalc.Product; 
 
    var price = Amt.value; 
 

 
    var regex = /[B][1-9]-[B][0-99]/; 
 

 
    if (!isNaN(price)) { 
 
     if (postcode.value.match(regex) !== null) { 
 
     document.getElementById('priceOut').innerHTML = "&pound;" + price; 
 
     } else { 
 
     document.getElementById('priceOut').innerHTML = "We do not deliver to this area."; 
 
     } 
 
    } else { 
 
     document.getElementById('priceOut').innerHTML = price; 
 
    } 
 

 

 
    } 
 
</script>

+0

非常感謝您的幫助,關於上述情況,當我放入任何'B'郵政編碼(例如B9 4RL)時,我仍然收到「我們沒有發送到這個區域」的信息,因爲這應該顯示價錢?你有沒有可能的解決辦法?再次感謝。 – user2083899

+0

解決了!替換「var regex =/[B] [1-9] - [B] [0-99] /;」 「var regex =/^ [B] {1,2} [0-9] {1,2}?[0-9] [A-Z] {2} $/i;」再次感謝你的幫助。 – user2083899

0

你提的問題不夠精確,但這裏是我的理解,你可以使用此代碼:

<div id="quote" style="padding:5%;"> 
    Gain an online quotation for your skip! 
    <form name="priceCalc" action=""> 
     <input class="form-control input-box" id="postcode1" type="text" name="postcode" placeholder=""> 
     <select name="Product"> 
      <option value="Please Select">Please Select</option> 
      <option value="10">1</option> 
      <option value="20" >2</option> 
      <option value="30">3</option> 
     </select> 
     <input type="button" value="Get Quote" onclick="price()" /><span id="priceOut"></span><br/> 
    </form> 
</div> 
<script> 
    function price() { 
     var Amt = document.priceCalc.Product; 
     var price = Amt.value; 
     document.getElementById('priceOut').innerHTML = price; 
    } 
</script> 

價格將旁邊顯示按鈕(什麼呢手段確切地說?) 您可以移動#priceOut div以將價格放在任何您想要的位置。