2017-10-27 14 views
-2

私はJQueryコードで複数の "if - else"ステートメントを実装しようとしています。試験印を計算し、結果をグループに分けることです。 2番目の関数に間違いがありますが(最初の関数だけで問題ありません)、それを見つけることができます:(多分私は "if - else"関数を間違って使います。 。JQueryで複数のif/else文を実装する方法は?

HTML

<input id="input0a" class="gender" type="radio" name="gender" value="2.5" onClick="document.getElementById('input0').value=this.value"> 
<label for="input0a">female</label> 
<input type="radio" name="gender" id="input0b" class="gender" value="1" onClick="document.getElementById('input0').value=this.value"> 
<label for="inputb">male</label> 
<br /> 
<input id="input0" type="text" name="Coeficient Gender" readonly="true" placeholder="Coeficient Gender" readonly="true" /> 
<label for="input0"> Coeficient Gender </label> 
<br /> 
<input id="input1" type="number" name="input" placeholder="input for calc" /> 
<label for="input1">Exam total points</label> 
<br /> 
<input id="res1" type="text" name="res absoluto" readonly="true" placeholder="res1" /> 
<label for="res1">Grade</label> 
<br /> 
<input id="res2" type="text" name="res groupo" readonly="true" placeholder="res2"> 
<label for="res2">Group</label> 

jQueryの

//get GFR PostOp 
function getGrade() { 
    var kG = parseFloat($("#input0").val()); 
    var preCalc = parseFloat($("#input1").val()); 
    var Calc = kG * preCalc; 
    var CalcReady = Calc.toFixed(2); 
    if (isNaN(CalcReady)) CalcReady = 0; 
    $('#res1').val((CalcReady)); 
} 

$(document).ready(function() { 
    $('#input1').keyup(function(event) { 
    getGrade(); 
    }); 
}); 

//get Grade Group 
function getGroup() { 
    var gradeGroup = parseFloat($("#res1").val()); 
    if (gradeGroup >= 90) { 
    var Group = 1; 
    } else if (gradeGroup < 90 && gradeGroup >= 60) { 
    var Group = 2; 
    } else if (gradeGroup < 60 && gradeGroup >= 45) { 
    var Group = 3 A; 
    } else if (gradeGroup < 45 && gradeGroup >= 30) { 
    var Group = 3 B; 
    } else if (gradeGroup < 30 && gradeGroup >= 15) { 
    var Group = 4; 
    } else { 
    var Group = 5; 
    }; 
} 

if (isNaN(Group)) Group = 0; 
$('#res2').val((Group)); 

$(document).ready(function) { 
$('#input1').keyup(function(event) { 
    getGroup(); 
}); 
}); 
+1

'VARグループ= 3B探しているものだと思います;'類似の線ar有効なJavaScriptではありません。 – Phix

+0

@Phixそれで私は何を唱えるべきですか?私も$( "#res2")で試しました。val((3B));しかし、どちらもうまくいきませんでした。 – Pussyfer

+0

3Bは数字ではなく、あなたのコードはそれを好きなように使っています。 #res2の値を文字列 "3B"にしますか? – Max

答えて

2

私は、これはあなたが

 //get GFR PostOp 
 
     function getGrade() { 
 
      var kG = parseFloat($("#input0").val()); 
 
      var preCalc = parseFloat($("#input1").val()); 
 
      var Calc = kG * preCalc; 
 
      var CalcReady = Calc.toFixed(2); 
 
      if (isNaN(CalcReady)) CalcReady = 0; 
 
      $('#res1').val((CalcReady)); 
 
     } 
 

 
     $(document).ready(function() { 
 
      $('#input1').keyup(function(event) { 
 
       getGrade(); 
 
\t \t \t \t getGroup(); 
 
      }); 
 
     }); 
 

 
     //get Grade Group 
 
     function getGroup() { 
 
\t \t \t var Group = '0'; 
 
      var gradeGroup = parseFloat($("#res1").val()); 
 
      if (gradeGroup >= 90) { 
 
       var Group = '1'; 
 
      } else if (gradeGroup < 90 && gradeGroup >= 60) { 
 
       var Group = '2'; 
 
      } else if (gradeGroup < 60 && gradeGroup >= 45) { 
 
       var Group = '3 A'; 
 
      } else if (gradeGroup < 45 && gradeGroup >= 30) { 
 
       var Group = '3 B'; 
 
      } else if (gradeGroup < 30 && gradeGroup >= 15) { 
 
       var Group = '4'; 
 
      } else { 
 
       var Group = '5'; 
 
      } 
 
     
 
\t \t \t $('#res2').val((Group)); 
 
\t \t } 
 
    
<html> 
 

 
<head> 
 
\t <meta charset="utf-8"/> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous"> 
 
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script> 
 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script> 
 
</head> 
 

 
<body> 
 
    
 
    <input id="input0a" class="gender" type="radio" name="gender" value="2.5" onClick="document.getElementById('input0').value=this.value"> 
 
    <label for="input0a">female</label> 
 
    <input type="radio" name="gender" id="input0b" class="gender" value="1" onClick="document.getElementById('input0').value=this.value"> 
 
    <label for="inputb">male</label> 
 
    <br /> 
 
    <input id="input0" type="text" name="Coeficient Gender" readonly="true" placeholder="Coeficient Gender" readonly="true" /> 
 
    <label for="input0"> Coeficient Gender </label> 
 
    <br /> 
 
    <input id="input1" type="number" name="input" placeholder="input for calc" /> 
 
    <label for="input1">Exam total points</label> 
 
    <br /> 
 
    <input id="res1" type="text" name="res absoluto" readonly="true" placeholder="res1" /> 
 
    <label for="res1">Grade</label> 
 
    <br /> 
 
    <input id="res2" type="text" name="res groupo" readonly="true" placeholder="res2"> 
 
    <label for="res2">Group</label> 
 
</body> 
 

 
</html>

2

あなたはjavascriptのコード全体でいくつかの小さな構文エラーを持っていたように見えます。私は、Rはできませんそれらはすべて名前をつけていますが、ここにエラーのないコードがあります:

私はインデント付きのjavascriptも同様にフォーマットしました。これらは、これらのような小さな構文エラーを避けるのに大いに役立ちます。このコードはちょうどスニペットのhtml形式で再生するだけで動作するようです。

を実行し、以下の抜粋:

//get GFR PostOp 
 
function getGrade() { 
 
    var kG = parseFloat($("#input0").val()); 
 
    var preCalc = parseFloat($("#input1").val()); 
 
    var Calc = kG * preCalc; 
 
    var CalcReady = Calc.toFixed(2); 
 
    if (isNaN(CalcReady)){ 
 
     CalcReady = 0; 
 
    } 
 
    $('#res1').val((CalcReady)); 
 
} 
 

 
$(document).ready(function() { 
 
    $('#input1').keyup(function(event) { 
 
     getGrade(); 
 
    }); 
 
}); 
 

 
//get Grade Group 
 
function getGroup() { 
 
    var gradeGroup = parseFloat($("#res1").val()); 
 
    if (gradeGroup >= 90){ 
 
     var Group = 1; 
 
    } 
 
    else if (gradeGroup <90 && gradeGroup >= 60){ 
 
     var Group = 2; 
 
    } 
 
    else if (gradeGroup <60 && gradeGroup >= 45){ 
 
     var Group = 3; 
 
    } 
 
    else if (gradeGroup <45 && gradeGroup >= 30){ 
 
     var Group = 3; 
 
    } 
 
    else if (gradeGroup <30 && gradeGroup >= 15){ 
 
     var Group = 4; 
 
    } 
 
    else { 
 
     var Group = 5; 
 
    } 
 

 
    if (isNaN(Group)){ 
 
     Group = 0; 
 
    } 
 
    $('#res2').val((Group)); 
 
} 
 

 
$(function() { 
 
    $('#input1').keyup(function(event){ 
 
     getGroup(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="input0a" class="gender" type="radio" name="gender" value="2.5" onClick="document.getElementById('input0').value=this.value"> 
 
<label for="input0a">female</label> 
 
<input type="radio" name="gender" id="input0b" class="gender" value="1" onClick="document.getElementById('input0').value=this.value"> 
 
<label for="inputb">male</label> 
 
<br /> 
 
<input id="input0" type="text" name="Coeficient Gender" readonly="true" placeholder="Coeficient Gender" readonly="true" /> 
 
<label for="input0"> Coeficient Gender </label> 
 
<br /> 
 
<input id="input1" type="number" name="input" placeholder="input for calc"/> 
 
<label for="input1">Exam total points</label> 
 
<br /> 
 
<input id="res1" type="text" name="res absoluto" readonly="true" placeholder="res1"/> 
 
<label for="res1">Grade</label>  
 
<br /> 
 
<input id="res2" type="text" name="res groupo" readonly="true" placeholder="res2"> 
 
<label for="res2">Group</label>

+0

それは私が必要とするほとんどです。 3aと3bだけが欠けています。私の構文を訂正していただきありがと – Pussyfer

関連する問題