在 Javascript if else 语句中,只有 if 被执行,即使它不是真的

我正在尝试使此代码运行。在函数 GradeCal() 中,即使条件不成立,也只执行 if 语句。由于某种原因, else 没有被执行。不知道我做错了什么。PS我是JS的初学者。这是我的代码


<html>


<head>

  <title>It430

  </title>

</head>


<body>

  <center>

    <h2>Grade Book Calculator</h2>

    <h4> Welcome to Grade Book Calculator </h4>

    <form id="my form">

      <table>

        <tr>

          <td>Student ID:</td>

          <td> <input id="studentid" value="bc180200783" oninvalid="alert(Please Enter Student ID)" type="text" place holder="Enter your VU ID" required="required" /></td>

        </tr>

        <tr>

          <td>Name:</td>

          <td> <input id="nameid" value="Hina" oninvalid="alert(Please Enter Name)" type="text" required="required" /></td>

        </tr>

        <tr>

          <td>Father Name:</td>

          <td> <input id="fathernameid" value="Zafar" oninvalid="alert(Please Enter Father Name)" type="text" required="required" /></td>

        </tr>

        <tr>

          <td>CNIC:</td>

          <td> <input id="cnicid" pattern="^[0-9+][5]-[0-9+][7]-[0-9][1]$" value="33100-1100321-5" oninvalid="alert(Please Enter CNIC)" required="required" /></td>

        </tr>

        <tr>

          <td>English:</td>

          <td> <input id="englishid" oninvalid="alert(Please Enter English Marks)" name="english" required="required" /></td>

        </tr>

        <tr>

          <td>Math:</td>

          <td> <input id="mathid" oninvalid="alert(Please Enter Math Marks)" name="math" required="required" /></td>

        </tr>

        <tr>

          <td>Computer:</td>

          <td> <input id="computerid" oninvalid="alert(Please Enter Computer Marks)" name="computer" required="required" /></td>

        </tr>

        <tr>

          <td>Average Marks:</td>

          <td> <output type="number" id="markid"> </output>

          </td>

        </tr>



        <tr>

          <td> <button type="button" onClick="GradeCal()"> Grade Book </button>

            <button type="reset"> Reset</button></td>

        </tr>

      </table>

    </form>

  </center>


炎炎设计
浏览 257回答 3
3回答

ABOUTYOU

您没有访问元素的值。您应该更改代码以包括从 HTML 元素中提取值。像这样:var field1 = document.getElementById("englishid").value;var field2 = document.getElementById("mathid").value;var field3 = document.getElementById("computerid").value;将.value提取 HTML 标记中的值。您还可以改进 if 语句。以下可能不会像您认为的那样做:if (field1 || field2 || field3 === NULL)这里实际发生了什么,它说的是: Is field1 set (not NULL, undefined, 0, NaN, "" or false) OR is field2 set (not NULL, undefined, 0, NaN, "" or false) OR is field3 NULL.如果您想检查其中任何一个是否为空,您需要执行以下操作:&nbsp;if (field1 === NULL || field2 === NULL || field3 === NULL)甚至更好,更容易:if (!field1 || !field2 || !field3)完整功能:function GradeCal() {&nbsp; &nbsp; &nbsp; var field1 = document.getElementById("englishid").value;&nbsp; &nbsp; &nbsp; var field2 = document.getElementById("mathid").value;&nbsp; &nbsp; &nbsp; var field3 = document.getElementById("computerid").value;&nbsp; &nbsp; &nbsp; var result;&nbsp; &nbsp; &nbsp; if (!field1 || !field2 || !field3) {&nbsp; &nbsp; &nbsp; &nbsp; alert("Please enter number");&nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; result = (field1 + field2 + field3) / 3;&nbsp; &nbsp; &nbsp; &nbsp; document.getElementById("markid").innerHTML = +result;&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }

守候你守候我

您的字段变量是您需要获取字段值以检查元素不能为空的元素&nbsp;var field1 = document.getElementById("englishid").value;&nbsp; var field2 = document.getElementById("mathid").value;&nbsp; var field3 = document.getElementById("computerid").value;

慕桂英3389331

GradeCal您可以稍微调整该函数并使其更具可扩展性,只需使用要处理的字段名称的数组和一些基本的数组方法即可。function GradeCal(){&nbsp; &nbsp; let result=[];&nbsp; &nbsp; let fields=[ 'english', 'math', 'computer' ];&nbsp; &nbsp; let out=document.getElementById('markid');&nbsp; &nbsp; fields.forEach( ( id, i )=>{&nbsp; &nbsp; &nbsp; &nbsp; let field=document.querySelector( 'input[name="'+id+'"]' );&nbsp; &nbsp; &nbsp; &nbsp; if( field && !isNaN( field.value ) && field.value!='' )result.push( parseFloat( field.value ) );&nbsp; &nbsp; &nbsp; &nbsp; else alert( 'Please enter a number for '+id )&nbsp; &nbsp; });&nbsp; &nbsp; if( result.length === fields.length ) {&nbsp; &nbsp; &nbsp; &nbsp; out.innerHTML = result.reduce(( a,v )=>{ return a + v } ) / fields.length;&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; out.innerHTML='Error';&nbsp; &nbsp; }}function GradeCal(){let result=[];let fields=[ 'english', 'math', 'computer' ];let out=document.getElementById('markid');fields.forEach( ( id, i )=>{&nbsp; let field=document.querySelector( 'input[name="'+id+'"]' );&nbsp; if( field && !isNaN( field.value ) && field.value!='' )result.push( parseFloat( field.value ) );&nbsp; else alert( 'Please enter a number for '+id )});if( result.length === fields.length ) {&nbsp; out.innerHTML = result.reduce(( a,v )=>{ return a + v } ) / fields.length;} else {&nbsp; out.innerHTML='Error';}}<h2>Grade Book Calculator</h2><h4> Welcome to Grade Book Calculator </h4><form id="my form">&nbsp; <table>&nbsp; <tr>&nbsp; &nbsp; <td>Student ID:</td>&nbsp; &nbsp; <td> <input id="studentid" value="bc180200783" oninvalid="alert(Please Enter Student ID)" type="text" place holder="Enter your VU ID" required="required" /></td>&nbsp; </tr>&nbsp; <tr>&nbsp; &nbsp; <td>Name:</td>&nbsp; &nbsp; <td> <input id="nameid" value="Hina" oninvalid="alert(Please Enter Name)" type="text" required="required" /></td>&nbsp; </tr>&nbsp; <tr>&nbsp; &nbsp; <td>Father Name:</td>&nbsp; &nbsp; <td> <input id="fathernameid" value="Zafar" oninvalid="alert(Please Enter Father Name)" type="text" required="required" /></td>&nbsp; </tr>&nbsp; <tr>&nbsp; &nbsp; <td>CNIC:</td>&nbsp; &nbsp; <td> <input id="cnicid" pattern="^[0-9+][5]-[0-9+][7]-[0-9][1]$" value="33100-1100321-5" oninvalid="alert(Please Enter CNIC)" required="required" /></td>&nbsp; </tr>&nbsp; <tr>&nbsp; &nbsp; <td>English:</td>&nbsp; &nbsp; <td> <input id="englishid" oninvalid="alert(Please Enter English Marks)" name="english" required="required" /></td>&nbsp; </tr>&nbsp; <tr>&nbsp; &nbsp; <td>Math:</td>&nbsp; &nbsp; <td> <input id="mathid" oninvalid="alert(Please Enter Math Marks)" name="math" required="required" /></td>&nbsp; </tr>&nbsp; <tr>&nbsp; &nbsp; <td>Computer:</td>&nbsp; &nbsp; <td> <input id="computerid" oninvalid="alert(Please Enter Computer Marks)" name="computer" required="required" /></td>&nbsp; </tr>&nbsp; <tr>&nbsp; &nbsp; <td>Average Marks:</td>&nbsp; &nbsp; <td> <output type="number" id="markid"> </output>&nbsp; &nbsp; </td>&nbsp; </tr>&nbsp; <tr>&nbsp; &nbsp; <td> <button type="button" onClick="GradeCal()"> Grade Book </button>&nbsp; &nbsp; <button type="reset"> Reset</button></td>&nbsp; </tr>&nbsp; </table></form>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript