2015-11-17 37 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以将价格放在任何您想要的位置。