Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 总价格不变,我希望在改变数字的同时看到总价格的变化?_Javascript_List_Price_Calculation - Fatal编程技术网

Javascript 总价格不变,我希望在改变数字的同时看到总价格的变化?

Javascript 总价格不变,我希望在改变数字的同时看到总价格的变化?,javascript,list,price,calculation,Javascript,List,Price,Calculation,我正在写一份可视化的价格表。在此价目表中,用户可以选择其项目功能、样式和渲染样式(照片逼真/概念性/制作),同时在列表底部查看项目的总价。我不明白为什么代码不计算价格 <html> <div id="RenderingTab" class="panel panel-default" > <div class="panel-heading"> <h4 class="panel-title"><a data-toggl

我正在写一份可视化的价格表。在此价目表中,用户可以选择其项目功能、样式和渲染样式(照片逼真/概念性/制作),同时在列表底部查看项目的总价。我不明白为什么代码不计算价格

  <html>
  <div id="RenderingTab" class="panel panel-default" >
    <div class="panel-heading">
      <h4 class="panel-title"><a data-toggle="collapse" data-
 parent="#accordion1" href="#collapseTwo1">Render</a></h4>
    </div>
    <div id="collapseTwo1" class="panel-collapse collapse">
      <form>
        <div class="panel-body">Project style :<br>
          <br>
          <div class="col-lg-6" data-toggle="buttons">
            <select id="prjstrndr" class="panel-title" 
 onchange="RndrPrcCalc(this);">
              <option  class="input-group-addon" value="1.3" id="rndr-mdrn" 
 onchange="RndrPrcCalc(this); RndrIntPrc(this);" name="options" >
              Modern </option>

              <option  class="input-group-addon" value="1" id="rndr-cls" 
 onchange="RndrPrcCalc(this); RndrIntPrc(this);" name="options"  >
              Classic </option>

              <option  class="input-group-addon" value="1.8" id="rndr-trd" 
 onchange="RndrPrcCalc(this); RndrIntPrc(this);" name="options"  >
              Traditional </option>

              <option  class="input-group-addon" value="0.9" id="rndr-param" 
onchange="RndrPrcCalc(this); RndrIntPrc(this);" name="options"  >
              Parametric </option>

              <option  class="input-group-addon" value="1.1" id="rndr-org" 
onchange="RndrPrcCalc(this); RndrIntPrc(this);" name="options"  >
              Organic </option>
              </select>
          </div>
        </div>
      </form>
      <form>
        <div class="panel-body">Project Function :<br>
          <br>
          <div class="col-lg-6" data-toggle="buttons">
             <select id="prjfnrndr" class="panel-title" 
onchange="RndrPrcCalc(this);">

              <option  class="input-group-addon" value="1.2" id="rndr-vll" 
onchange="RndrPrcCalc(this); RndrIntPrc(this);" name="style">
              Villa </option>

              <option  class="input-group-addon" value="1" id="rndr-
apprtmnt" onchange="RndrPrcCalc(this); RndrIntPrc(this);" name="style" >
              Appartment </option>

              <option  class="input-group-addon" value="1.35" id="rndr-
cmmrcl" onchange="RndrPrcCalc(this); RndrIntPrc(this);" name="style" >
              Commercial </option>

              <option  class="input-group-addon" value="1.3" id="rndr-offcl" 
onchange="RndrPrcCalc(this); RndrIntPrc(this);" name="style" >
              Official </option>

              <option  class="input-group-addon" value="1.25" id="rndr-othr" 
onchange="RndrPrcCalc(this); RndrIntPrc(this);" name="style" >
              Other </option>
              </select>
          </div>
        </div>
      </form>

        <br>

            <div class="panel panel-default">
              <div class="panel-heading">
                <h4 class="panel-title"><a data-toggle="collapse" data-
 parent="#accordion3" href="#collapseTwo3"> Interior Rendering</a></h4>
              </div>
 <div id="collapseTwo3" class="panel-collapse collapse">
                <div class="panel-body">

                  <br>
                  <div id="rndr-lobbyParam" >
                    <div class="input-group input-group-sm"><span 
class="input-group-addon paramtitle">Lobby wall area  </span>
                      <input type="number" min="0" step="0.01" id="rndr-int-
 wall-area-lobby" class="form-control" onchange="RndrIntPrc();" 
 placeholder=" 0.00     sqm " required="required">
                    </div>
                    <br>
                    <div class="input-group input-group-sm"><span 
 class="input-group-addon paramtitle">Photo Realistic </span>
                      <div class="row">
                        <div class="col-lg-6">
                          <div class="input-group"><span class="input-group-
  addon">Day</span>
                            <input type="number" min="0" id="rndr-int-real-
   day-lobby" class="form-control" placeholder="0 Num" 
 onchange="RndrIntPrc();">
                          </div>
                          <!-- /input-group --> 
                        </div>
                        <!-- /.col-lg-6 -->
                        <div class="col-lg-6">
                          <div class="input-group"><span class="input-group-
  addon"> Night</span>
                            <input type="number" min="0" id="rndr-int-real-
nght-lobby" class="form-control" placeholder="0 Num" 
 onchange="RndrIntPrc();">
                          </div>
                          <!-- /input-group --> 
                        </div>
                        <!-- /.col-lg-6 --> 
                      </div>
                    </div>
                    <div class="input-group input-group-sm"><span 
   class="input-group-addon paramtitle">Conceptual</span>
                      <div class="row">
                        <div class="col-lg-6">
                          <div class="input-group"><span class="input-group-
 addon">Day</span>
                            <input type="number" min="0" id="rndr-int-conc-
   day-lobby" class="form-control" placeholder="0 Num" 
  onchange="RndrIntPrc();">
                          </div>
                          <!-- /input-group --> 
                        </div>
                        <!-- /.col-lg-6 -->
                        <div class="col-lg-6">
                          <div class="input-group"><span class="input-group-
    addon"> Night</span>
                            <input type="number" min="0" id="rndr-int-conc-
 nght-lobby" class="form-control" placeholder="0 Num" 
   onchange="RndrIntPrc();">
                          </div>
                          <!-- /input-group --> 
                        </div>
                        <!-- /.col-lg-6 --> 
                      </div>
                    </div>
                    <div class="input-group input-group-sm"><span 
    class="input-group-addon paramtitle">Maket</span>
                      <div class="row">
                        <div class="col-lg-6">
                          <div class="input-group"><span class="input-group-
    addon">Day</span>
                            <input type="number" min="0" id="rndr-int-mak-
   day-lobby" class="form-control" placeholder="0 Num" onchange="RndrIntPrc();">
                          </div>
                          <!-- /input-group --> 
                        </div>
                        <!-- /.col-lg-6 -->
                        <div class="col-lg-6">
                          <div class="input-group"><span class="input-group-
    addon" disabled="disabled"> Night</span>
                            <input type="number" min="0" id="rndr-int-mak-
   nght-lobby" class="form-control" placeholder="0 Num" disabled="disabled">
                          </div>

  <br>

 <label class="fa">Interior rendering Total price  </label>
    <input type="text"  class="form-control"  id="render-int-price" 
    placeholder= "0" readonly></input>
   </html>

      <script>
     document.getElementById("prjstrndr").onchange = function() 
       {RndrIntPrc();};
    document.getElementById("prjfnrndr").onchange = function()
    {RndrIntPrc();};
    document.getElementById("rndr-lobby").onchange = function() 
    {RndrIntPrc();};


     document.getElementById("rndr-int-wall-area-lobby").onchange = 
   function() {RndrIntPrc();};
    document.getElementById("rndr-int-real-day-lobby").onchange = function() 
  {RndrIntPrc();};
    document.getElementById("rndr-int-real-nght-lobby").onchange = 
   function() {RndrIntPrc();};
    document.getElementById("rndr-int-conc-day-lobby").onchange = function() 
 {RndrIntPrc();};
    document.getElementById("rndr-int-conc-nght-lobby").onchange = 
   function() 
               {RndrIntPrc();};
    document.getElementById("rndr-int-mak-day-lobby").onchange = function() 
    {RndrIntPrc();};

   //interior render cost calculation:

   var       
          RIRDL = document.getElementById("rndr-int-real-day-lobby"),
          RIRNL = document.getElementById("rndr-int-real-nght-lobby"),
          RICDL = document.getElementById("rndr-int-conc-day-lobby"),
          RICNL = document.getElementById("rndr-int-conc-nght-lobby"),
          RIMDL = document.getElementById("rndr-int-mak-day-lobby"),







          Totalintrndr = 0;

          document.getElementById('render-int-price').value = Totalintrndr;

    var RndrIntPrc = function() {

    var       projectStylerndr = document.getElementById('prjstrndr').value,
          projectFunctionrndr = document.getElementById('prjfnrndr').value,

          RIWAL = document.getElementById("rndr-int-wall-area-lobby").value,
          RIRDLNum = RIRDL.value,
          RIRNLNum = RIRNL.value,
          RICDLNum = RICDL.value,
          RICNLNum = RICNL.value,
          RIMDLNum = RIMDL.value,

          XRL = 50000,
          XCL = 25000,
          XML = 10000,


    var intNumD = [];

   [RIRDLNum,RICDLNum,RIMDLNum].forEach(function(n, i) {
   intNumD[i] = (n >= 2 && n < 5) ? n * 0.9 : n == 0 ? 0 : n == 1 ? 1 : n - 1;
});

 var intNumN = [];

 [RIRNLNum,RICNLNum].forEach(function(n, i) {
   intNumN[i] = (n >= 2 && n < 5) ? n * 0.95 : n == 0 ? 0 : n == 1 ? 1.2 : n == 2 ? 1.9 : n - 1;
});





        var     Totalintrndr = projectStylerndr * projectFunctionrndr * 
       (Math.log(RIWAL)*((XRL)*(intNumD[0] + intNumN[0]) + (XCL)*(intNumD[1] 
       + intNumN[1]) + (XML)*intNumD[2]) );




             document.getElementById('render-int-price').value = 
             (Totalintrndr>0 && Totalintrndr!=='NaN')?Totalintrndr:0;

     };


    </script>

项目风格:

现代的 经典 传统的 参数化 有机的 项目职能:

别墅 公寓 商业的 官方的 其他

大堂墙面积
写实 白天 夜 概念的 白天 夜 市场 白天 夜
室内装修总价 document.getElementById(“prjstrndr”).onchange=function() {RndrIntPrc();}; document.getElementById(“prjfnrndr”).onchange=function() {RndrIntPrc();}; document.getElementById(“rndr大厅”).onchange=function() {RndrIntPrc();}; document.getElementById(“rndr内部墙区大厅”)。onchange= 函数(){rndrintpc();}; document.getElementById(“rndr int real day lobby”).onchange=function() {RndrIntPrc();}; document.getElementById(“rndr int real nght Lobble”).onchange= 函数(){rndrintpc();}; document.getElementById(“rndr int conc day lobble”).onchange=function() {RndrIntPrc();}; document.getElementById(“rndr int conc nght大厅”).onchange= 函数() {RndrIntPrc();}; document.getElementById(“rndr int mak day Lobble”).onchange=function() {RndrIntPrc();}; //内部渲染成本计算: 变量 RIRDL=document.getElementById(“rndr int real day lobby”), RIRNL=document.getElementById(“rndr int real nght lobby”), RICDL=document.getElementById(“rndr int conc day大厅”), RICNL=document.getElementById(“rndr int conc nght大厅”), RIMDL=document.getElementById(“rndr int mak day大厅”), Totalintrndr=0; document.getElementById('render-int-price')。value=Totalintrndr; var rndrintpc=函数(){ var projectStylerndr=document.getElementById('prjstrndr')。值, projectFunctionrndr=document.getElementById('prjfnrndr')。值, RIWAL=document.getElementById(“rndr int wall area LOBOY”).value, RIRDLNum=RIRDL.值, RIRNLNum=RIRNL.值, RICDLNum=RICDL.value, RICNLNum=RICNL.value, RIMDLNum=RIMDL.value, XRL=50000, XCL=25000, XML=10000, var intNumD=[]; [RIRDLNum,RICDLNum,RIMDLNum].forEach(函数(n,i){ intNumD[i]=(n>=2&&n<5)?n*0.9:n==0?0:n==1?1:n-1; }); var intNumN=[]; [RIRNLNum,RICNLNum].forEach(函数(n,i){ intNumN[i]=(n>=2&&n<5)?n*0.95:n==0?0:n==1?1.2:n==2?1.9:n-1; }); var Totalintrndr=projectStylerndr*项目功能rNDR* (数学日志(RIWAL)*((XRL)*(intNumD[0]+intNumN[0])+(XCL)*(intNumD[1] +intNumN[1])+(XML)*intNumD[2]); document.getElementById('render-int-price')。值= (Totalintrndr>0&&Totalintrndr!=='NaN')?Totalintrndr:0; };
修复所有打字错误后,你必须阅读一些JS手册,而不是学习一些数学课程。 现在认真地说:

  • log(x)-如果x<1,则返回数字<0。因此,除非rndr int wall area大厅<1,否则您将得到“0”作为总价
  • 选项元素没有onchange
  • 从JavaScript的角度来看,它会起作用

    请参阅代码的工作版本

    
    项目风格:

    现代的 经典 传统的 参数化 有机的 项目职能:

    别墅 公寓 商业的
    <html>
    <div id="RenderingTab" class="panel panel-default">
      <div class="panel-heading">
        <h4 class="panel-title"><a data-toggle="collapse" data- parent="#accordion1" href="#collapseTwo1">Render</a></h4>
      </div>
      <div id="collapseTwo1" class="panel-collapse collapse">
        <form>
          <div class="panel-body">Project style :<br>
            <br>
            <div class="col-lg-6" data-toggle="buttons">
              <select id="prjstrndr" class="panel-title" onchange="RndrIntPrc(this);">
                  <option  class="input-group-addon" value="1.3"  > Modern </option>
                  <option  class="input-group-addon" value="1"   > Classic </option>
                  <option  class="input-group-addon" value="1.8"  > Traditional </option>
                  <option  class="input-group-addon" value="0.9"   > Parametric </option>
                  <option  class="input-group-addon" value="1.1"   > Organic </option>
              </select>
            </div>
          </div>
        </form>
        <form>
          <div class="panel-body">Project Function :<br>
            <br>
            <div class="col-lg-6" data-toggle="buttons">
              <select id="prjfnrndr" class="panel-title" onchange="RndrPrcCalc(this);">
                  <option  class="input-group-addon" value="1.2" >Villa </option>
                  <option  class="input-group-addon" value="1" >Appartment </option>
                  <option  class="input-group-addon" value="1.35" >Commercial </option>
                  <option  class="input-group-addon" value="1.3" > Official </option>
                  <option  class="input-group-addon" value="1.25" >Other </option>
              </select>
            </div>
          </div>
        </form>
    
        <br>
    
        <div class="panel panel-default">
          <div class="panel-heading">
            <h4 class="panel-title">
              <a data-toggle="collapse" data- parent="#accordion3" href="#collapseTwo3"> Interior Rendering</a></h4>
          </div>
          <div id="collapseTwo3" class="panel-collapse collapse">
            <div class="panel-body">
              <br>
              <div id="rndr-lobby">
                <div class="input-group input-group-sm"><span class="input-group-addon paramtitle">Lobby wall area  </span>
                  <input type="number" value=10 min="0" step="0.01" id="rndr-int-wall-area-lobby" class="form-control" onchange="RndrIntPrc();" placeholder=" 0.00     sqm " required="required">
                </div>
                <br>
                <div class="input-group input-group-sm"><span class="input-group-addon paramtitle">Photo Realistic </span>
                  <div class="row">
                    <div class="col-lg-6">
                      <div class="input-group"><span class="input-group-addon">Day</span>
                        <input type="number" value="1" min="0" id="rndr-int-real-day-lobby" class="form-control" placeholder="0 Num" onchange="RndrIntPrc();">
                      </div>
                      <!-- /input-group -->
                    </div>
                    <!-- /.col-lg-6 -->
                    <div class="col-lg-6">
                      <div class="input-group"><span class="input-group-addon"> Night</span>
                        <input type="number" min="0" id="rndr-int-real-nght-lobby" class="form-control" placeholder="0 Num" onchange="RndrIntPrc();">
                      </div>
                      <!-- /input-group -->
                    </div>
                    <!-- /.col-lg-6 -->
                  </div>
                </div>
                <div class="input-group input-group-sm"><span class="input-group-addon paramtitle">Conceptual</span>
                  <div class="row">
                    <div class="col-lg-6">
                      <div class="input-group"><span class="input-group-addon">Day</span>
                        <input type="number" min="0" id="rndr-int-conc-day-lobby" class="form-control" placeholder="0 Num" onchange="RndrIntPrc();">
                      </div>
                      <!-- /input-group -->
                    </div>
                    <!-- /.col-lg-6 -->
                    <div class="col-lg-6">
                      <div class="input-group"><span class="input-group-addon"> Night</span>
                        <input type="number" min="0" id="rndr-int-conc-nght-lobby" class="form-control" placeholder="0 Num" onchange="RndrIntPrc();">
                      </div>
                      <!-- /input-group -->
                    </div>
                    <!-- /.col-lg-6 -->
                  </div>
                </div>
                <div class="input-group input-group-sm"><span class="input-group-addon paramtitle">Maket</span>
                  <div class="row">
                    <div class="col-lg-6">
                      <div class="input-group"><span class="input-group-addon">Day</span>
                        <input type="number" min="0" id="rndr-int-mak-day-lobby" class="form-control" placeholder="0 Num" onchange="RndrIntPrc();">
                      </div>
                      <!-- /input-group -->
                    </div>
                    <!-- /.col-lg-6 -->
                    <div class="col-lg-6">
                      <div class="input-group"><span class="input-group-addon" disabled="disabled"> Night</span>
                        <input type="number" min="0" id="rndr-int-mak-nght-lobby" class="form-control" placeholder="0 Num" disabled="disabled">
                      </div>
    
                      <br>
                      <label class="fa">Interior rendering Total price  </label>
                      <input type="text" class="form-control" id="render-int-price" placeholder="0" readonly></input>
    </html>
    
    <script>
      document.getElementById("prjstrndr").onchange = function () { RndrIntPrc(); };
      document.getElementById("prjfnrndr").onchange = function () { RndrIntPrc(); };
      document.getElementById("rndr-lobby").onchange = function () { RndrIntPrc(); };
      document.getElementById("rndr-int-wall-area-lobby").onchange = function () { RndrIntPrc(); };
      document.getElementById("rndr-int-real-day-lobby").onchange = function () { RndrIntPrc(); };
      document.getElementById("rndr-int-real-nght-lobby").onchange = function () { RndrIntPrc(); };
      document.getElementById("rndr-int-conc-day-lobby").onchange = function () { RndrIntPrc(); };
      document.getElementById("rndr-int-conc-nght-lobby").onchange = function () { RndrIntPrc(); };
      document.getElementById("rndr-int-mak-day-lobby").onchange = function () { RndrIntPrc(); };
    
      //interior render cost calculation:
    
      var
        RIRDL = document.getElementById("rndr-int-real-day-lobby"),
        RIRNL = document.getElementById("rndr-int-real-nght-lobby"),
        RICDL = document.getElementById("rndr-int-conc-day-lobby"),
        RICNL = document.getElementById("rndr-int-conc-nght-lobby"),
        RIMDL = document.getElementById("rndr-int-mak-day-lobby"),
    
        Totalintrndr = 0;
    
      document.getElementById('render-int-price').value = Totalintrndr;
    
      var RndrIntPrc = function () {
        console.log('1');
        var projectStylerndr = document.getElementById('prjstrndr').value,
          projectFunctionrndr = document.getElementById('prjfnrndr').value,
          RIWAL = document.getElementById("rndr-int-wall-area-lobby").value,
          RIRDLNum = RIRDL.value,
          RIRNLNum = RIRNL.value,
          RICDLNum = RICDL.value,
          RICNLNum = RICNL.value,
          RIMDLNum = RIMDL.value,
          XRL = 50000,
          XCL = 25000,
          XML = 10000;
    
        var intNumD = [];
    
        [RIRDLNum, RICDLNum, RIMDLNum].forEach(function (n, i) {
          intNumD[i] = (n >= 2 && n < 5) ? n * 0.9 : n == 0 ? 0 : n == 1 ? 1 : n - 1;
        });
    
        var intNumN = [];
    
        [RIRNLNum, RICNLNum].forEach(function (n, i) {
          intNumN[i] = (n >= 2 && n < 5) ? n * 0.95 : n == 0 ? 0 : n == 1 ? 1.2 : n == 2 ? 1.9 : n - 1;
        });
    
        var Totalintrndr = projectStylerndr * projectFunctionrndr *
          (Math.log(RIWAL) * ((XRL) * (intNumD[0] + intNumN[0]) + (XCL) * (intNumD[1]
            + intNumN[1]) + (XML) * intNumD[2]));
    
        document.getElementById('render-int-price').value =
          (Totalintrndr > 0 && Totalintrndr !== 'NaN') ? Totalintrndr : 0;
    
      };
    
      RndrIntPrc();
    
    </script>