0

我目前正在尝试为我的第一个网站构建报价计算器,我已经学习了一周的 Javascript,我使用 jQuery 在网站加载时隐藏各种元素,然后在单击相关按钮时显示。第一个问题,通过这样做,我是否会在任何新的 javascript 代码和 jQuery 代码之间产生任何冲突?

我已经建立了一个弹出界面来分解提供的服务,有 5 个类别。当单击“您需要存储多少个盒子?”时,我进一步开发了一个类别来显示。它下面有一个文本框,旁边有一个提交按钮。单击提交按钮时,它会显示一个新问题;“你想存放多久?” 还有两个名为“周”和“月”的文本框,带有另一个提交按钮。

我希望实现的是创建一个函数来获取输入到第一个框中的值,将给定的数字除以 18 并将其向上舍入到下一个整数,即使它是 1.000001。同时,我需要将输入“月”的值乘以 4.33 并向上取整。然后将months*4.33的结果与输入到weeks的值相加,得到总持续时间,最终的计算必须是(totalduration*2.50)*resultofthefirstcalculation。最终结果必须显示在我选择的文本框中作为货币价值 - 0.00 英镑

许多问题:

我使用的所有文本框都必须在“表单”标签内,以便 javascript 正确找到它们吗?如果是这样,是否必须全部采用一种形式,还是我可以使用多种形式?
我可以在同一个“脚本”标签中混合使用 Javascript 和 jQuery 吗?如果是这样,一个应该先于另一个吗?

稍后,一旦报价计算器功能正常,我计划使用 PHP 向用户发送一封包含报价详细信息的电子邮件,并发送给我自己。我是否需要在我的 HTML/Javascript 中考虑这一点?我想发送的所有细节都必须是:一种形式/不止一种形式/没关系,可以是任何元素吗?

这是几乎完美工作状态的弹出按钮(减去计算lol),右侧元素有轻微缺陷,但我已在网站代码中修复此问题。在脚本标签的顶部,在代码的底部,我已经包含了我在进行一些思维导图之后进行部分计算的最佳尝试,以了解所需的内容和顺序。

    <!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">
    <title>Untitled Document</title>
    <script type="text/javascript" src="jquery.js"></script>
    <style type="text/css">
    body { width:100%; height:100%; text-align:center; margin:0px; }
    div#bodycontainer { position:absolute; min-width:100%; height:100%; padding:0px; z-index:100; }
    div.centerdiv { position:relative; width:1100px; height:100%; margin:0 auto; border-left:solid 2px #ddd; border-right:solid 2px #ddd; background-image:url(images/transport_background_alt.png); overflow:visible; background-position:0px 0px; background-repeat:no-repeat; z-index:1 }
    div#getaquote { width:320px; height:55px; border:solid 1px #516c84; border-radius:15px; float:right; background:url(images/quotebkgd.png) no-repeat #fff; background-position:500px -50px; padding:none; }
    button#quote { width:300px; height:50px; margin:0px; font-family:Arial, Helvetica, sans-serif; font-size:22px; color:#516c84; background-color:#fff; border:none; }
    p#quotetitle { position:relative; top:20px; left:20px; width:500px; height:100px; font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:28px; color:#516c84; margin:0px; text-align:left; }
    div#callus { position:absolute; top:435px; width:340px; height:110px; font-family:"Bookman Old Style", Times New Roman, Times, serif; float:left;/*border:solid 1px #000;*/ }
    div#emailus { position:absolute; top:435px; left:340px; width:370px; height:110px; font-family:"Bookman Old Style", Times New Roman, Times, serif; float:left; }
    img.icon { float:left; }
    p#email { position:absolute; top:10px; left:120px; font-size:30px; font-weight:bold; color:#516c84; margin:0px; line-height:34px; }
    p#smallertxt { position:absolute; top:50px; left:100px; font-size:22px; color:#516c84; margin:0px; }
    p#call { position:absolute; top:10px; left:105px; font-size:28px; font-weight:bold; color:#516c84; margin:0px; line-height:34px; }
    div#minbutton { width:52px; height:52px; position:absolute; top:15px; left:915px;/*border:solid 1px #000;*/ }
    div#minbutton a:hover img { background:#516c84; }
    div.quotebuttons { position:absolute; top:70px; left:15px; width:200px; height:auto; }
    button#servcat1 { position:relative; display:block; float:left; width:200px; height:60px; margin-top:7px; font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:22px; color:#516c84; background:#fff; border:outset 3px #516c84; border-radius:5px; }
    button#servcat1:hover { background:#516c84; color:#fff; }
    button#servcat1:click {
    background:#516c84;
    color:#fff;
    }
    button#servcat2 { position:relative; display:block; float:left; width:200px; height:60px; margin-top:7px; font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:22px; color:#516c84; background:#fff; border:outset 3px #516c84; border-radius:5px; }
    button#servcat2:hover { background:#516c84; color:#fff; }
    button#servcat3 { position:relative; display:block; float:left; width:200px; height:60px; margin-top:7px; font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:22px; color:#516c84; background:#fff; border:outset 3px #516c84; border-radius:5px; }
    button#servcat3:hover { background:#516c84; color:#fff; }
    button#servcat4 { position:relative; display:block; float:left; width:200px; height:60px; margin-top:7px; font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:22px; color:#516c84; background:#fff; border:outset 3px #516c84; border-radius:5px; }
    button#servcat4:hover { background:#516c84; color:#fff; }
    button#servcat5 { position:relative; display:block; float:left; width:200px; height:60px; margin-top:7px; font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:22px; color:#516c84; background:#fff; border:outset 3px #516c84; border-radius:5px; }
    button#servcat5:hover { background:#516c84; color:#fff; }
    div#transportopt { position:absolute; top:73px; left:230px; width:500px; height:330px; border:outset 3px #000; }
    div#storageopt { position:absolute; top:73px; left:230px; width:500px; height:330px;/*border:outset 3px #000;*/
    }
    div#freightopt { position:absolute; top:73px; left:230px; width:500px; height:330px; border:outset 3px #000; }
    div#relocationopt { position:absolute; top:73px; left:230px; width:500px; height:330px; border:outset 3px #000; }
    div#exhibitionopt { position:absolute; top:73px; left:230px; width:500px; height:330px; border:outset 3px #000; }
    div#quoteelements { position:absolute; left:750px; width:auto; height:auto; left:750px; }
    form#form { position:absolute; top:270px; width:205px; height:225px; /*border:solid 1px #000;*/ font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:20px; color:#fff; line-height:30px; }
    form#quoteform { background:none; }
    input.formdata { height:30px; width:200px; border-radius:5px; }
    input#submitbtn { position:relative; display:block; float:right; width:130px; height:50px; margin-top:7px; font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:22px; background:#516c84; color:#fff; border:outset 3px #516c84; border-radius:5px; }
    input#submitbtn:hover { color:#516c84; background:#fff; border-radius:5px; }
    div#quotecalc { position:absolute; top:63px; width:205px; height:210px; }
    div#total { width:200px; height:52px; margin-top:7px; background:#516c84; border-radius:5px; border:outset 1px #fff; padding:4px; }
    div#tax { width:200px; height:52px; margin-top:7px; background:#516c84; border-radius:5px; border:outset 1px #fff; padding:4px; }
    div#grandtotal { width:200px; height:52px; margin-top:7px; background:#516c84; border-radius:5px; border:outset 1px #fff; padding:4px; }
    p.calctitles { font-family:"Bookman Old Style", Times New Roman, Times, serif; font-weight:bold; color:#fff; text-align:left; margin-left:5px; margin-top:0px; text-decoration:underline; }
    #numberprice { max-width:150px; max-height:22px; font-family:"Bookman Old Style", Times New Roman, Times, serif; font-weight:500; font-size:20px; padding:0px; color:#fff; text-align:right; text-decoration:underline; margin-top:0px; border:none; background:#516c84; }
    #storagebutton1 { width:230px; height:70px; font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:22px; background:#516c84; color:#fff; border:outset 3px #516c84; border-radius:5px; margin-right:10px; }
    #storagebutton1:hover { background:#fff; color:#516c84; font-weight:bold; }
    #storagebutton2 { width:230px; height:70px; font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:22px; background:#516c84; color:#fff; border:outset 3px #516c84; border-radius:5px; }
    #storagebutton2:hover { background:#fff; color:#516c84; font-weight:bold; }
    #backbutton { width:70px; height:70px; font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:16px; background:#516c84; color:#fff; border:outset 3px #516c84; border-radius:5px; margin-right:10px; }
    #backbutton:hover { background:#fff; color:#516c84; font-weight:bold; }
    #backbutton2 { width:70px; height:70px; font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:16px; background:#516c84; color:#fff; border:outset 3px #516c84; border-radius:5px; margin-right:10px; }
    #backbutton2:hover { background:#fff; color:#516c84; font-weight:bold; }
    .optdisplay { width:470px; height:8px; background:#516c84; margin:10px auto; border:outset 3px #116c84; border-radius:5px; }
    .boxtext { font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:28px; font-weight:bold; color:#fff; margin-top:10px; }
    #numbofboxes { width:85px; height:55px; background:#fff; color:#516c84; text-align:center; border:outset 2px #516c84; border-radius:5px; font-size:34px; font-weight:bold; margin:0px; }
    #numbweeks { width:60px; height:40px; background:#fff; color:#516c84; text-align:center; border:outset 5px #516c84; border-radius:5px; font-size:34px; font-weight:bold; margin:0px; }
    #numbmonths { width:60px; height:40px; background:#fff; color:#516c84; text-align:center; border:outset 5px #516c84; border-radius:5px; font-size:34px; font-weight:bold; margin-top:0px; }
    .btw { font-family:"Bookman Old Style", Times New Roman, Times, serif; font-size:18px; font-weight:bold; color:#fff; }
    #smtbxno { width:85px; height:55px; background:#516c84; color:#fff; text-align:center; border-top:solid #fff 2px; border-left:solid #eee 1px; border-right:outset 3px #516c84; border-bottom:outset 2px #516c84; border-radius:5px; font-size:24px; font-weight:bold; font-family:"Bookman Old Style", Times New Roman, Times, serif; }
    #tick2 { width:85px; height:55px; background:#516c84; color:#fff; text-align:center; border-top:solid #fff 2px; border-left:solid #eee 1px; border-right:outset 3px #516c84; border-bottom:outset 2px #516c84; border-radius:5px; font-size:24px; font-weight:bold; font-family:"Bookman Old Style", Times New Roman, Times, serif; }
    </style>
    </head><body>
    <div id="bodycontainer">
    <div id="getaquote"> <a>
    <button id="quote"> <strong>Get A Quote Now</strong></br>
    </button>
    </a>
    <p id="quotetitle"> <strong>Choose The Services You Require:</strong> </p>
    <div id="callus"> <img class="icon" src="images/phoneicon.gif" />
    <p id="call"> 0208 208 4411 </br>
    07850 495 804 </p>
    </div>
    <div id="emailus"> <img class="icon" src="images/aticon.gif" />
    <p id="email"> EMAIL: INFO

    <p id="smallertxt"> <strong>BelmontTransport.com</strong> </p>
    </p>
    </div>
    <div id="minbutton"> <a><img class="minimize" src="images/minimizebutton.png" /></a> </div>
    <div class="quotebuttons"> <a>
    <button id="servcat1"> <strong>Transport</strong> </button>
    </a> <a>
    <button id="servcat2"> <strong>Storage</strong> </button>
    </a> <a>
    <button id="servcat3"> <strong>Freight</strong> </button>
    </a> <a>
    <button id="servcat4"> <strong>Relocation</strong> </button>
    </a> <a>
    <button id="servcat5"> <strong>Exhibition</strong> </button>
    </a> </div>
    <div id="transportopt">
    <div id="dedicatedtransport" onclick="addselected">
    <input type="checkbox" name="options" onclick="options" value=250>
    Dedicated Transport
    </input>
    </div>
    <div id="commercialtransport"> Commercial Transport </div>
    </div>
    <div id="storageopt"> <a>
    <button id="backbutton"> Back </button>
    </a> <a>
    <button id="backbutton2"> Back </button>
    </a> <a>
    <button id="storagebutton1"> Palletised Storage </button>
    </a> <a>
    <button id="storagebutton2"> Boxed Storage </button>
    </a>
    <div class="optdisplay">
    <div id="noboxes">
    <p class="boxtext">How many boxes do you need to store?</p>
    <div id="boxinputs">
    <input type="text" id="numbofboxes" value="0" name="boxnumber"/>
    <button id="smtbxno"> <img src="images/tick.gif" alt="proceed"/> </button>
    </div>
    <p class="btw"> Standard box dimensions: 40cm x 40cm x 40cm </p>
    </div>
    <div id="storetimebox">
    <p class="boxtext"> How long do you need to store for? </p>
    <p class="btw"> Weeks
    <input type="text" id="numbweeks" value="0" name="weekno" />
    Months
    <input type="text" id="numbmonths" value="0" name="monthno"/>
    </p>
    <button id="tick2" onclick="workitout()"> <img src="images/tick.gif" alt="proceed"/> </button>
    </div>
    </div>
    </div>
    <div id="freightopt"> This is where freight options are displayed </div>
    <div id="relocationopt"> This is where relocation options are displayed </div>
    <div id="exhibitionopt"> This is where exhibition options are displayed </div>
    <div id="quoteelements">
    <form id="form">
    <strong>Name:</strong>
    <input class="formdata" type="text" name="name">
    <strong>Business:</strong>
    <input class="formdata" type="text" name="business">
    <strong>Email Address:</strong>
    <input class="formdata" type="text" name="email">
    <a>
    <input id="submitbtn" type="submit" value="Get Quote">
    </a>
    </form>
    <div id="quotecalc">
    <div id="total">
    <p class="calctitles"> Sub-Total </p>
    <p id="stresult"> WOULD LIKE SUB TOTAL HERE </p>
    </div>
    <div id="tax">
    <p class="calctitles"> VAT </p>
    </div>
    <div id="grandtotal">
    <p class="calctitles"> Grand Total </p>
    <p id="numberprice"> </p>
    </div>
    </div>
    </div>
    </div>
    </div>
    <script type="text/javascript">

    var totalprice=""
    var storagetime=""
    var boxno=""

    function workitout(){
    var a=parseInt(document.boxnumber.value);
    var b=parseInt(document.weekno.value);
    var c=parseInt(document.monthno.value);
    storagetime=(c*4.3);
    Math.round(storagetime)=totalprice;
    document.quotecalc.grandtotal.value=totalprice;
    };

    $(document).ready(function(){
    $("#quotetitle").hide();
    $("#callus").hide();
    $("#emailus").hide();
    $(".quotebuttons").hide();
    $("#minbutton").hide();
    $("#transportopt").hide();
    $("#storageopt").hide();
    $("#freightopt").hide();
    $("#relocationopt").hide();
    $("#exhibitionopt").hide();
    $("#quoteelements").hide();
    $("#quotecalc").hide();
    $("#quoteform").hide();
    $(".optdisplay").hide();
    $("#backbutton").hide();
    $("#backbutton2").hide();
    $("#noboxes").hide();
    $("#storetimebox").hide();

    });

    $("#quote").click(function(){
    $("#getaquote").animate({height:"550px",position:"absolute",top:"125px"});
    $("#getaquote").animate({width:"980px",left:"-245px"})
    $("#quotetitle").show(1000);
    $("#getaquote").css({"border-style":"solid","border-width":"2px","border-color":"#516c84"});
    $("#quote").hide(500);
    $("#bodytext").fadeTo(2500,0.15);
    $("#callus").show(1000);
    $("#emailus").show(1000);
    $(".quotebuttons").show(2000);
    $("#minbutton").show(1500);
    $("#quotecalc").show();
    $("#quoteelements").show(1000);

    /*$("#bodytext").css({"background":"#516c84"});9e9ec6*/


    });

    $("#minbutton").click(function(){
    $("#getaquote").animate({width:"320px",left:"435px"});
    $("#getaquote").animate({height:"55px",position:"absolute",top:"65px"});
    $("#quotetitle").hide();
    $("#getaquote").css({"border-style":"none"});
    /*$("#getaquote").css({"border-style":"solid","border-width":"2px","border-color":"#516c84"});*/
    $("#quote").show(2000);
    $("#bodytext").fadeTo(2500,1);
    $("#callus").hide(1000);
    $("#emailus").hide(1000);
    $(".quotebuttons").hide();
    $("#minbutton").hide();
    $("#transportopt").hide();
    $("#storageopt").hide();
    $("#freightopt").hide();
    $("#relocationopt").hide();
    $("#exhibitionopt").hide();
    $("#quoteelements").hide();

    });

    $("#servcat1").click(function(){
    $("#transportopt").show();
    $("#storageopt").hide();
    $("#freightopt").hide();
    $("#relocationopt").hide();
    $("#exhibitionopt").hide();

    });

    $("#servcat2").click(function(){
    $("#transportopt").hide();
    $("#storageopt").show();
    $("#freightopt").hide();
    $("#relocationopt").hide();
    $("#exhibitionopt").hide();

    });

    $("#servcat3").click(function(){
    $("#transportopt").hide();
    $("#storageopt").hide();
    $("#freightopt").show();
    $("#relocationopt").hide();
    $("#exhibitionopt").hide();

    });

    $("#servcat4").click(function(){
    $("#transportopt").hide();
    $("#storageopt").hide();
    $("#freightopt").hide();
    $("#relocationopt").show();
    $("#exhibitionopt").hide();

    });

    $("#servcat5").click(function(){
    $("#transportopt").hide();
    $("#storageopt").hide();
    $("#freightopt").hide();
    $("#relocationopt").hide();
    $("#exhibitionopt").show();

    });

    $("#storagebutton1").click(function(){
    $("#backbutton").show();
    $(".optdisplay").show()
    $(".optdisplay").animate({height:"245px"});
    $("#storagebutton2").hide();
    $("#storagebutton1").animate({width:"390px"})(5000)

    });

    $("#storagebutton2").click(function(){
    $("#backbutton").show();
    $(".optdisplay").show()
    $(".optdisplay").animate({height:"245px"});
    $("#storagebutton1").hide();
    $("#noboxes").show(500);
    $("#storagebutton2").animate({width:"390px"})(5000)

    });

    $("#backbutton").click(function(){
    $("#storagebutton1").show();
    $("#storagebutton2").show();
    $(".optdisplay").hide();
    $("#backbutton").hide();
    $("#storagebutton2").animate({width:"230px"});
    $("#noboxes").hide();
    $("#storagebutton1").animate({width:"230px"})(5000);

    });

    $("#smtbxno").click(function(){
    $("#noboxes").hide(1000);
    $("#storetimebox").show(1500);
    $("#backbutton").hide();
    $("#backbutton2").show();
    });

    $("#backbutton2").click(function(){
    $("#noboxes").show(1000);
    $("#storetimebox").hide(500);
    $("#backbutton").show();
    $("#backbutton2").hide();
    });

    </script>
    </body>
    </html>
4

2 回答 2

3

首先是一点背景。jQuery 只是一个 javascript 辅助函数和对象的库。这一切都是用 javascript 编写的——它不是一种不同的语言。它只是 javascript。jQuery 和 javascript 之间不存在冲突。

您的问题的一些答案:

我目前正在尝试为我的第一个网站构建报价计算器,我已经学习了一周的 Javascript,我使用 jQuery 在网站加载时隐藏各种元素,然后在单击相关按钮时显示。第一个问题,通过这样做,我是否会在任何新的 javascript 代码和 jQuery 代码之间产生任何冲突?

对不起,但这个问题对我来说没有多大意义。jQuery 只是 javascript,因此使用 javascript 和 jQuery 之间没有冲突。

我使用的所有文本框都必须在“表单”标签内,以便 javascript 正确找到它们吗?

不,文本框可以在 HTML 中的任何位置。

我可以在同一个“脚本”标签中混合使用 Javascript 和 jQuery 吗?

jQuery 是 JavaScript。它们可以自由混合。

稍后,一旦报价计算器功能正常,我计划使用 PHP 向用户发送一封包含报价详细信息的电子邮件,并发送给我自己。我是否需要在我的 HTML/Javascript 中考虑这一点?

当您想要实现此功能时,您需要将适当的 HTML/javascript 添加到您的页面。在此之前,您无需执行任何操作。

我想发送的所有细节都必须是:一种形式/不止一种形式/没关系,可以是任何元素吗?

这取决于您如何将数据发送到您的服务器。如果是非javascript表单提交,那么所有数据都需要在表单中。如果您使用 javascript 通过 URL 或 ajax 调用将数据发送到服务器,那么数据可以在任何地方,您可以使用 javascript 将其组装成正确的形式以发送到服务器。

于 2012-07-18T18:46:28.840 回答
0

如果我理解正确,您希望在单击某个提交按钮或其他控件后获取用户输入数据。尽管您有很多一般性问题,但我会直接跳船并发布您迟早会遇到的实际解决方案。

jQuery 使用一种val()方法从输入字段中获取数据。您可能希望将此方法用作on.('click', function(){})事件绑定中的回调,以获取该值。

然后您可以处理您的计算,创建一个新的输入字段并重复该过程。

于 2012-07-18T19:00:37.033 回答