Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 如何使用jQuery正确计算输入值?_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用jQuery正确计算输入值?

Javascript 如何使用jQuery正确计算输入值?,javascript,jquery,Javascript,Jquery,我不能得到我想要的结果。用户在字段中给出数字后,我使用公式进行计算,并将结果存储在totalValue jQuery(document).ready(function(){ jQuery('#calculateBoiler').click(function() { // Get Rooms Area Value function getRoomsArea () { var roomsArea = jQuery("#roomsa

我不能得到我想要的结果。用户在字段中给出数字后,我使用公式进行计算,并将结果存储在
totalValue

jQuery(document).ready(function(){

    jQuery('#calculateBoiler').click(function() {

        // Get Rooms Area Value

        function getRoomsArea () {
            var roomsArea = jQuery("#roomsarea").val()
            var roomsAreaNew = parseInt(roomsArea).toFixed(1);
            console.log(roomsAreaNew);
            return roomsAreaNew;
        }

        // Get RoomsHeight Value

        function getRoomsHeight () {
            var roomsHeight = jQuery("#roomsheight").val();
            var roomsHeightNew = parseInt(roomsHeight).toFixed(1);
            console.log(roomsHeightNew);
            return roomsHeightNew;
        }


        // Get Typos Ktitiou Value 

         function getBuildingType() {
             var buildtypeVal =  jQuery('input[name=selectedbuilding]:checked').val();
             console.log(buildtypeVal);
             return buildtypeVal;
        }

       // Get Zesto Nero Value

         function getHotWater() {
             var hotWaterVal =  jQuery('input[name=selectedwater]:checked').val();
             console.log(hotWaterVal);
             return hotWaterVal;
        }

         // Get Elaxisti Thermokrasia Perioxis

          function tempLocation() {
             var tempVal =  jQuery('input[name=selectedTemp]:checked').val();
            console.log(tempVal);
             return tempVal;
       }

        // Get Monwsh Ktiriou Value

        function getThermalInsulation() {
             var monwsh = (jQuery('#thermalinsulation :selected').val());
             console.log(monwsh);
             return monwsh;
        }

          var totalValue = (getRoomsArea () * getRoomsHeight () * 50) * (getThermalInsulation() * getBuildingType() * tempLocation()) + getHotWater();
           var result = (Math.round(totalValue / 100)).toFixed(2);
            console.log(result);


          // Calculations 


           switch (result) {

            case (totalValue == 0 || isNaN(totalValue)):
                     jQuery('#result').show();
                     jQuery('#result').html('<p style="color: red; text-align: center;">Οι τιμές δεν μπορεί να είναι κενές ή 0. Ξαναπροσπαθήστε!</p>');
             break;

             case (result <= 29000):
                      jQuery('#result').show();
                      jQuery('#result').html( '<h4> <span style="color: #fff; font-size: 16px; display: block; margin-bottom: 10px;">Σύμφωνα με τα δεδομένα που καταχωρήσατε προτεινόμενος λέβητας είναι  </span>  KPP20 ή PB26 </h4>' );
                      jQuery('#result').append('<img class="boiler-result" src="/wp-content/uploads/2019/06/revo-line-min-1.png">');
                      jQuery('#result').append('<a class="nectar-button large regular result-btn" href="/revo-line"> Περισσότερα </a> ');   
             break;

             case (result > 29000 && result <= 35000):
                      jQuery('#result').show();
                      jQuery('#result').html( '<h4> <span style="color: #fff; font-size: 16px; display: block; margin-bottom: 10px;">Σύμφωνα με τα δεδομένα που καταχωρήσατε προτεινόμενος λέβητας είναι  </span>  KPP25 ή PB35 </h4>' );
                      jQuery('#result').append('<img class="boiler-result" src="/wp-content/uploads/2019/06/revo-line-min-1.png">');
                      jQuery('#result').append('<a class="nectar-button large regular result-btn" href="/revo-line"> Περισσότερα </a> ');   
             break;
             case (result > 35000 && result <= 40000):
                      jQuery('#result').show();
                      jQuery('#result').html( '<h4> <span style="color: #fff; font-size: 16px; display: block; margin-bottom: 10px;">Σύμφωνα με τα δεδομένα που καταχωρήσατε προτεινόμενος λέβητας είναι  </span>  KPP34 ή PB35 </h4>' );
                      jQuery('#result').append('<img class="boiler-result" src="/wp-content/uploads/2019/06/revo-line-min-1.png">');
                      jQuery('#result').append('<a class="nectar-button large regular result-btn" href="/revo-line"> Περισσότερα </a> ');   
             break;
             case (result > 40000 && result <= 45000):
                      jQuery('#result').show();
                      jQuery('#result').html( '<h4> <span style="color: #fff; font-size: 16px; display: block; margin-bottom: 10px;">Σύμφωνα με τα δεδομένα που καταχωρήσατε προτεινόμενος λέβητας είναι  </span>  KPP34 ή PB44 </h4>' );
                      jQuery('#result').append('<img class="boiler-result" src="/wp-content/uploads/2019/06/revo-line-min-1.png">');
                      jQuery('#result').append('<a class="nectar-button large regular result-btn" href="/revo-line"> Περισσότερα </a> ');   
             break;
             case (result > 45000 && result <= 75000):
                      jQuery('#result').show();
                      jQuery('#result').html( '<h4> <span style="color: #fff; font-size: 16px; display: block; margin-bottom: 10px;">Σύμφωνα με τα δεδομένα που καταχωρήσατε προτεινόμενος λέβητας είναι  </span>  KPP62 ή PB70 </h4>' );
                      jQuery('#result').append('<img class="boiler-result" src="/wp-content/uploads/2019/06/revo-line-min-1.png">');
                      jQuery('#result').append('<a class="nectar-button large regular result-btn" href="/revo-line"> Περισσότερα </a> ');   
             break;
             case (result > 75000 && result <= 100000):
                      jQuery('#result').show();
                      jQuery('#result').html( '<h4> <span style="color: #fff; font-size: 16px; display: block; margin-bottom: 10px;">Σύμφωνα με τα δεδομένα που καταχωρήσατε προτεινόμενος λέβητας είναι  </span> PB90 </h4>' );
                      jQuery('#result').append('<img class="boiler-result" src="/wp-content/uploads/2019/06/revo-line-min-1.png">');
                      jQuery('#result').append('<a class="nectar-button large regular result-btn" href="/revo-line"> Περισσότερα </a> ');   
             break;

             default:
                     jQuery('#result').show();
                     jQuery('#result').html('<p style="color: red; text-align: center;">BOOOOO!</p>');
              break;     
           }










    });

});
jQuery(文档).ready(函数(){
jQuery(“#calculateBoiler”)。单击(函数(){
//获取房间面积值
函数getRoomsArea(){
var roomsArea=jQuery(“#roomsArea”).val()
var roomsAreaNew=parseInt(roomsArea).toFixed(1);
控制台日志(roomsAreaNew);
回程房是新的;
}
//获得正确的价值
函数getRoomsHeight(){
var roomsHeight=jQuery(“#roomsHeight”).val();
var roomsHeightNew=parseInt(roomsheigh).toFixed(1);
控制台日志(roomsHeightNew);
返回新房间;
}
//获取输入错误KTU值
函数getBuildingType(){
var buildtypeVal=jQuery('input[name=selectedbuilding]:checked').val();
console.log(buildtypeVal);
返回buildtypeVal;
}
//获取Zesto Nero值
函数getHotWater(){
var hotWaterVal=jQuery('input[name=selectedwater]:checked').val();
console.log(hotWaterVal);
返回热水阀;
}
//获得埃拉克斯蒂热克雷西亚
函数模板定位(){
var tempVal=jQuery('input[name=selectedTemp]:checked').val();
console.log(tempVal);
返回临时值;
}
//获取Monwsh Ktiriou值
函数getthermalination(){
var monwsh=(jQuery('#thermalinsulation:selected').val();
console.log(monwsh);
返回monwsh;
}
var totalValue=(getRoomsArea()*getRoomsHeight()*50)*(gethermalination()*getBuildingType()*templation())+getHotWater();
var结果=(数学四舍五入(totalValue/100)).toFixed(2);
控制台日志(结果);
//计算
开关(结果){
案例(totalValue==0 | | isNaN(totalValue)):
jQuery('#result').show();
jQuery(“#result”).html(“

CharStyleιτιΔενμπορεναεκεναικενή0; 打破 案例(结果29000和结果35000和结果40000和结果45000和结果75000和结果200L Μόνωση 没有一个 5厘米 10厘米 15厘米 Ελάχιστη εξωτερική θερμοκρασία περιοχής

  • 0摄氏度-5摄氏度
  • -5摄氏度-10摄氏度
  • -10摄氏度-20摄氏度
  • 我预计输出为15.840,得到1584.00

    
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    <body>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <form action="" id="boilerpowerForm" onsubmit="return false;">
    
     <div class="vc_column-inner">
      <div class="wpb_wrapper">
        <div class="vc_col-sm-4">
                <label class="control-label" for="kmkPowierzchnia">Τετραγωνικά κτιρίου</label>
            <div class="input-group">
                <input type="number" placeholder="Εισάγετε τετραγωνικά π.χ. 20" name="roomsarea" class="form-control" id="roomsarea" value="132">
                <span class="input-group-addon">m²</span> 
            </div>
    <label class="control-label">Τύπος κτιρίου</label>
               <li> <input type="radio"  name="selectedbuilding" value="1.00" checked> Κατοικία (21°C) </li>
               <li> <input type="radio"  name="selectedbuilding" value="0.80"> Επαγγελματικός χώρος(18°C) </li>
    
        </div>
    
        <div class="vc_col-sm-4">
            <label class="control-label">Ύψος κτιρίου</label>
            <div class="input-group">
                <input type="number" placeholder="Εισάγετε ύψος π.χ. 2.3" name="roomsheight" class="form-control" id="roomsheight" value="2.5">
                <span class="input-group-addon">m</span> 
            </div>
    <label class="control-label">Ζεστό νερό χρόνος</label>
               <li> <input type="radio"  name="selectedwater" value="0.00" checked> none </li>
               <li> <input type="radio"  name="selectedwater" value="3.000"> < 200 l </li>
               <li> <input type="radio"  name="selectedwater" value="6.000"> > 200 l </li>
         </div>
    
    <div class="vc_col-sm-4">
            <label class="control-label">Μόνωση</label>
            <div class="input-group">
                    <select id="thermalinsulation" placeholder="Εισάγετε τετραγωνικά" class="form-control" name="thermalinsulation">
                            <option value="1.20">None</option>
                            <option value="1.00">5cm</option>
                            <option value="0.80">10cm</option>
                            <option value="0.70">15cm</option>
                       </select>
            </div>
    <label class="control-label">Ελάχιστη εξωτερική θερμοκρασία περιοχής</label>
               <li> <input type="radio"  value="1.00" name="selectedTemp" checked>  0°C - 5°C  </li>
               <li> <input type="radio"  value="1.20" name="selectedTemp"> -5°C - 10°C </li>
               <li> <input type="radio"  value="1.30" name="selectedTemp"> -10°C - 20°C </li>
       </div>
    </div>
    
    
    <div class="vc_column-inner">
                <div class="wpb_wrapper">
       <div class="vc_col-sm-12">
         <a class="calc-btn" href="#" id="calculateBoiler">SELECT BOILER</a>
       </div>
    
    </div>
    </div>
    
    <div class="vc_column-inner">
                <div class="wpb_wrapper">
       <div class="vc_col-sm-12">
        <div id="result">
             <p></p>
          </div>
    </div>
    </div>
    </div>
    
    </form>
    
    <script type="text/javascript">
        jQuery(document).ready(function(){
    
        jQuery('#calculateBoiler').click(function() {
    
            // Get Rooms Area Value
    
            function getRoomsArea () {
                var roomsArea = jQuery("#roomsarea").val()
                var roomsAreaNew = parseInt(roomsArea).toFixed(1);
                console.log(roomsAreaNew);
                return roomsAreaNew;
            }
    
            // Get RoomsHeight Value
    
            function getRoomsHeight () {
                var roomsHeight = jQuery("#roomsheight").val();
                var roomsHeightNew = parseInt(roomsHeight).toFixed(1);
                console.log(roomsHeightNew);
                return roomsHeightNew;
            }
    
    
            // Get Typos Ktitiou Value 
    
             function getBuildingType() {
                 var buildtypeVal =  jQuery('input[name=selectedbuilding]:checked').val();
                 console.log(buildtypeVal);
                 return buildtypeVal;
            }
    
           // Get Zesto Nero Value
    
             function getHotWater() {
                 var hotWaterVal =  jQuery('input[name=selectedwater]:checked').val();
                 console.log(hotWaterVal);
                 return hotWaterVal;
            }
    
             // Get Elaxisti Thermokrasia Perioxis
    
              function tempLocation() {
                 var tempVal =  jQuery('input[name=selectedTemp]:checked').val();
                console.log(tempVal);
                 return tempVal;
           }
    
            // Get Monwsh Ktiriou Value
    
            function getThermalInsulation() {
                 var monwsh = (jQuery('#thermalinsulation :selected').val());
                 console.log(monwsh);
                 return monwsh;
            }
    
              var totalValue = (getRoomsArea () * getRoomsHeight () * 50) * (getThermalInsulation() * getBuildingType() * tempLocation()) + getHotWater();
               var result = (Math.round(totalValue / 100)).toFixed(2);
    
               result /= 100;
                console.log(result);
    
    
              // Calculations 
    
    
               switch (true) {
    
                case (totalValue == 0 || isNaN(totalValue)):
                         jQuery('#result').show();
                         jQuery('#result').html('<p style="color: red; text-align: center;">Οι τιμές δεν μπορεί να είναι κενές ή 0. Ξαναπροσπαθήστε!</p>');
                 break;
    
                 case (result <= 29000):
                          jQuery('#result').show();
                          jQuery('#result').html( '<h4> <span style="color: #fff; font-size: 16px; display: block; margin-bottom: 10px;">Σύμφωνα με τα δεδομένα που καταχωρήσατε προτεινόμενος λέβητας είναι  </span>  KPP20 ή PB26 </h4>' );
                          jQuery('#result').append('<img class="boiler-result" src="/wp-content/uploads/2019/06/revo-line-min-1.png">');
                          jQuery('#result').append('<a class="nectar-button large regular result-btn" href="/revo-line"> Περισσότερα </a> ');   
                 break;
    
                 case (result > 29000 && result <= 35000):
                          jQuery('#result').show();
                          jQuery('#result').html( '<h4> <span style="color: #fff; font-size: 16px; display: block; margin-bottom: 10px;">Σύμφωνα με τα δεδομένα που καταχωρήσατε προτεινόμενος λέβητας είναι  </span>  KPP25 ή PB35 </h4>' );
                          jQuery('#result').append('<img class="boiler-result" src="/wp-content/uploads/2019/06/revo-line-min-1.png">');
                          jQuery('#result').append('<a class="nectar-button large regular result-btn" href="/revo-line"> Περισσότερα </a> ');   
                 break;
                 case (result > 35000 && result <= 40000):
                          jQuery('#result').show();
                          jQuery('#result').html( '<h4> <span style="color: #fff; font-size: 16px; display: block; margin-bottom: 10px;">Σύμφωνα με τα δεδομένα που καταχωρήσατε προτεινόμενος λέβητας είναι  </span>  KPP34 ή PB35 </h4>' );
                          jQuery('#result').append('<img class="boiler-result" src="/wp-content/uploads/2019/06/revo-line-min-1.png">');
                          jQuery('#result').append('<a class="nectar-button large regular result-btn" href="/revo-line"> Περισσότερα </a> ');   
                 break;
                 case (result > 40000 && result <= 45000):
                          jQuery('#result').show();
                          jQuery('#result').html( '<h4> <span style="color: #fff; font-size: 16px; display: block; margin-bottom: 10px;">Σύμφωνα με τα δεδομένα που καταχωρήσατε προτεινόμενος λέβητας είναι  </span>  KPP34 ή PB44 </h4>' );
                          jQuery('#result').append('<img class="boiler-result" src="/wp-content/uploads/2019/06/revo-line-min-1.png">');
                          jQuery('#result').append('<a class="nectar-button large regular result-btn" href="/revo-line"> Περισσότερα </a> ');   
                 break;
                 case (result > 45000 && result <= 75000):
                          jQuery('#result').show();
                          jQuery('#result').html( '<h4> <span style="color: #fff; font-size: 16px; display: block; margin-bottom: 10px;">Σύμφωνα με τα δεδομένα που καταχωρήσατε προτεινόμενος λέβητας είναι  </span>  KPP62 ή PB70 </h4>' );
                          jQuery('#result').append('<img class="boiler-result" src="/wp-content/uploads/2019/06/revo-line-min-1.png">');
                          jQuery('#result').append('<a class="nectar-button large regular result-btn" href="/revo-line"> Περισσότερα </a> ');   
                 break;
                 case (result > 75000 && result <= 100000):
                          jQuery('#result').show();
                          jQuery('#result').html( '<h4> <span style="color: #fff; font-size: 16px; display: block; margin-bottom: 10px;">Σύμφωνα με τα δεδομένα που καταχωρήσατε προτεινόμενος λέβητας είναι  </span> PB90 </h4>' );
                          jQuery('#result').append('<img class="boiler-result" src="/wp-content/uploads/2019/06/revo-line-min-1.png">');
                          jQuery('#result').append('<a class="nectar-button large regular result-btn" href="/revo-line"> Περισσότερα </a> ');   
                 break;
    
                 default:
                         jQuery('#result').show();
                         jQuery('#result').html('<p style="color: red; text-align: center;">BOOOOO!</p>');
                  break;     
               }
    
    
    
    
    
    
    
    
    
    
        });
    
    });
    </script>
    </body>
    </html>
    
    
    测试一下,上面的代码工作正常……)

    让我们看看这里:

    function getRoomsHeight () {
         var roomsHeight = jQuery("#roomsheight").val();
         var roomsHeightNew = parseInt(roomsHeight).toFixed(1);
         console.log(roomsHeightNew);
         return roomsHeightNew;
    }
    
    parseInt(roomsHeight).toFixed(1);
    返回一个字符串--
    toFixed()
    始终返回一个字符串,因为精确的整数(例如2.1)通常不存在。因此函数
    getRoomsHeight()
    也返回一个字符串

    同样适用于
    getRoomsArea()

    稍后您将使用:

     var totalValue = (getRoomsArea () * getRoomsHeight () * 50) * ...
    
    结果无效,因为不能将2个字符串相乘

    解决方案
    在需要数字的地方删除
    .toFixed()

    您还应该提供相关的HTML,以便您的问题可以在最短的时间内重现。如果您的问题与parseInt有关,如与parseInt(roomsArea)有关,什么是roomsArea?我们如何知道值是什么?如果您提供一些附带的HTML,允许重现问题,其他人会发现更容易帮助您。尝试注销您的totalValue变量。这是您期望的吗?我们无法看到您的输入等,因此很难提供帮助。基于15.84 t的期望值otalValue sb 1584是真的吗?可能是因为你除以100?var result=(Math.round(totalValue/100)).toFixed(2);我不相信这个代码是有效的。
    var roomsHeightNew=parseInt(roomsheigh).toFixed(1);
    分配一个字符串(不是一个数字),因此
    getroomsheigh()
    返回与
    getRoomsArea()
    相同的字符串,因此
    getRoomsArea()*GetRoomsHight()
    的计算无效。
     var totalValue = (getRoomsArea () * getRoomsHeight () * 50) * ...