簡體   English   中英

在控制台中,當我單擊帶有空白字段的輸入按鈕時,我在javascript中收到錯誤

[英]In Console when I am click the input button with blank field I am getting an error in javascript

我正在學習javascript,我正在嘗試創建一個能夠給我們提供結果的表格。

我的小提琴

function showResult() {
    var viewResult = document.getElementById('demo');
    var inputOne = document.getElementById("studentName").value;
    var inputTwo = document.getElementById("studentsubj").value;
    var stuName = studentName.indexOf(inputOne);
    var subName = subjectName.indexOf(inputTwo);
    var result = markes[stuName][subName];
    viewResult.innerHTML = "This is the marks of " + inputOne + " " + inputTwo + " " + result + " %";
}

在控制台中,當我單擊帶有空白輸入字段的輸入按鈕時,我在javascript中收到錯誤

這是錯誤:

“demo.js:408 Uncaught TypeError:無法讀取未定義的屬性'-1'”

我的代碼出了什么問題。

您應該檢查學生和科目是否存在。

 var studentName = ["Bruce", "Clark", "Barry", "Diana", "Victor", "Billy"]; var subjectName = ["English", "Math", "History", "Geography", "Physics", "Biology"]; var markes = [ [99, 98, 97, 98, 99, 90], [98, 90, 96, 99, 98, 95], [95, 98, 94, 90, 97, 91], [99, 97, 94, 90, 96, 92], [69, 89, 79, 59, 65, 90], [50, 90, 91, 66, 70, 80] ]; function showResult() { var inputOne = document.getElementById("studentName").value; var inputTwo = document.getElementById("studentsubj").value; var stuName = studentName.indexOf(inputOne); var subName = subjectName.indexOf(inputTwo); if (stuName < 0) { alert("Student not found"); return; } if (subName < 0) { alert("Subject not found"); return; } var result = markes[stuName][subName]; alert(result); document.querySelector('input').value = ""; } 
 <table border="1" width="auto"> <tr> <td>Name</td> <td>English</td> <td>Math</td> <td>History</td> <td>Geography</td> <td>Physics</td> <td>Biology</td> </tr> <tr> <td>Bruce</td> <td>99%</td> <td>98%</td> <td>97%</td> <td>98%</td> <td>99%</td> <td>90%</td> </tr> <tr> <td>Clark</td> <td>98%</td> <td>90%</td> <td>96%</td> <td>99%</td> <td>98%</td> <td>95%</td> </tr> <tr> <td>Barry</td> <td>95%</td> <td>98%</td> <td>94%</td> <td>90%</td> <td>97%</td> <td>91%</td> </tr> <tr> <td>Diana</td> <td>99%</td> <td>97%</td> <td>94%</td> <td>90%</td> <td>96%</td> <td>92%</td> </tr> <tr> <td>Victor</td> <td>69%</td> <td>89%</td> <td>79%</td> <td>59%</td> <td>65%</td> <td>90%</td> </tr> <tr> <td>Billy</td> <td>50%</td> <td>90%</td> <td>91%</td> <td>66%</td> <td>70%</td> <td>80%</td> </tr> </table> <br> <br> <form> <input type="text" id="studentName"> <input type="text" id="studentsubj"> <input type="button" name="submit" value="submit" onclick="showResult()" /> </form> <p id=demo></p> 

這里的代碼相同,為您的鏈接更新

如果輸入字段為空,則var stuName = studentName.indexOf(inputOne); var subName = subjectName.indexOf(inputTwo); 將返回-1。 所以var result = markes[stuName][subName]; 將是var result = markes[-1][-1]; 這是控制台錯誤的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM