2016-12-23 21 views
-3

我的Javascript代码不工作的两个不同的值,问题在哪里? 我试图设置代码在两种不同的条件下用两个不同的值进行分割。但我在这个if else语句中。代码的链接在这里:https://jsfiddle.net/gLb0uok5/Javascript代码不能为两个不同的值工作

function calc() 
 
    { 
 
     var m1,m2,m3,avg = 0,total = 0, result = "",grade = ""; 
 
     m1 = parseInt(document.form1.wp.value); 
 
     m2 = parseInt(document.form1.sp.value); 
 
     m3 = parseInt(document.form1.cg.value); 
 
     total = m1+m2+m3; 
 
     
 
     
 
     if(m3 = 0) 
 
     { 
 
      avg = total/2; 
 
     } 
 
     else(m3 >= 1) 
 
     { 
 
      avg = total/3; 
 
     } 
 
     document.form1.result.value = result; 
 
     document.form1.grade.value = grade; 
 
     document.form1.total.value = total; 
 
     document.form1.average.value = avg; 
 
     
 
    }
<form name = "form1"> 
 
     <table border = "1"> 
 
      <tr> 
 
       <td> Student Name</td> 
 
       <td><input type = "text" /></td> 
 
      </tr> 
 
      <tr> 
 
       <td colspan = "2" align = "center">Subject Marks</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Web Programming</td> 
 
       <td><input type = "text" name = "wp" /></td> 
 
      </tr> 
 
      <tr> 
 
       <td>Computer Graphics</td> 
 
       <td><input type = "text" name = "cg" /></td> 
 
      </tr> 
 
      <tr> 
 
       <td>System Programming</td> 
 
       <td><input type = "text" name = "sp" /></td> 
 

 
      </tr> 
 
      <tr> 
 
       <td colspan = "2" align = "center"><input type = "button" onclick = "calc()" value = "calculte" /></td> 
 
      </tr>    
 
      <tr> 
 
       <td>Total</td> 
 
       <td><input type = "text" name = "total"/></td> 
 

 
      </tr> 
 
      <tr> 
 
       <td>Average</td> 
 
       <td><input type = "text" name = "average" /></td> 
 
      </tr> 
 
      <tr> 
 
       <td>Result</td> 
 
       <td><input type = "text" name = "result" /></td> 
 
      </tr> 
 
      <tr> 
 
       <td>Grade</td> 
 
       <td><input type = "text" name = "grade"/></td> 
 
      </tr> 
 

 
     </table> 
 
    </form>

+1

请更整齐地码 –

+0

你有语法错误,解释你的问题。在添加总量之前,你应该检查m3是否存在。 – Shilly

回答

0

当没有给定的输入,m1m2m3NaN(非数字)

所以只是做了检查:

if(isNaN(m1)) m1 =0; 
    if(isNaN(m2)) m2 =0; 
    if(isNaN(m3)) m3 =0; 

它会工作。 Working code here

0

你只是忘记了为元素设置值并试图访问这些值总是为NULL的值,这就是为什么你会得到NaN错误。请看这里的工作演示。我只是加入value="2"

function calc() 
 
    { 
 
     var m1,m2,m3,avg = 0,total = 0, result = "",grade = ""; 
 
     m1 = parseInt(document.form1.wp.value); 
 
     m2 = parseInt(document.form1.sp.value); 
 
     m3 = parseInt(document.form1.cg.value); 
 
     total = m1+m2+m3;  
 
     
 
     if(m3 = 0) 
 
     { 
 
      avg = total/2; 
 
     } 
 
     else(m3 >= 1) 
 
     { 
 
      avg = total/3; 
 
     } 
 
     document.form1.result.value = result; 
 
     document.form1.grade.value = grade; 
 
     document.form1.total.value = total; 
 
     document.form1.average.value = avg;   
 
}
<form name = "form1"> 
 
     <table border = "1"> 
 
      <tr> 
 
       <td> Student Name</td> 
 
       <td><input type = "text" /></td> 
 
      </tr> 
 
      <tr> 
 
       <td colspan = "2" align = "center">Subject Marks</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Web Programming</td> 
 
       <td><input type = "text" name = "wp" value="2" /></td> 
 
      </tr> 
 
      <tr> 
 
       <td>Computer Graphics</td> 
 
       <td><input type = "text" name = "cg" value="2" /></td> 
 
      </tr> 
 
      <tr> 
 
       <td>System Programming</td> 
 
       <td><input type = "text" name = "sp" value="2" /></td> 
 

 
      </tr> 
 
      <tr> 
 
       <td colspan = "2" align = "center"><input type = "button" onclick = "calc()" value = "calculte" /></td> 
 
      </tr>    
 
      <tr> 
 
       <td>Total</td> 
 
       <td><input type = "text" name = "total"/></td> 
 

 
      </tr> 
 
      <tr> 
 
       <td>Average</td> 
 
       <td><input type = "text" name = "average" /></td> 
 
      </tr> 
 
      <tr> 
 
       <td>Result</td> 
 
       <td><input type = "text" name = "result" /></td> 
 
      </tr> 
 
      <tr> 
 
       <td>Grade</td> 
 
       <td><input type = "text" name = "grade"/></td> 
 
      </tr> 
 

 
     </table> 
 
    </form>

相关问题