繁体   English   中英

为什么我的函数在 javascript 中不起作用?

[英]Why is my function not working in javascript?

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body onload="fetchIssues()">
    <div class="container">
        <h1>JS IssuteTracker change <small>by CodingSmartWay.com</small></h1>
        <div class="jumbotron">
            <h3>Add New Issue:</h3>
            <form id="issueInputForm">
                <div class="form-group">
                    <label for="issueDescInput">Description</label>
                    <input type="text" class="form-control" id="issueDescInput" placeholder="Describe the issue ...">
                </div>
                <div class="form-group">
                    <label for="issueSeverityInput">Severity</label>
                    <select id="issueSeverityInput" class="form-control">
                        <option value="Low">Low</option>
                        <option value="Medium">Medium</option>
                        <option value="High">High</option>
                    </select>
                </div>
                <div class="form-group">
                    <label for="issueAssignedToInput">Assigned To</label>
                    <input type="text" class="form-control" id="issueAssignedToInput" placeholder="Enter responsible ...">
                </div>
                <button type="submit" class="btn btn-primary">Add</button>
                </form>
        </div>
        <div class="col-lg-12">
            <div id="issuesList">
            </div>
        </div>
        <div class="footer">
            <p>&copy CodingTheSmartWay.com</p>
        </div>
    </div>
<script src="app.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>
document.getElementById("issueInputForm").addEventListener("submit", saveIssue);

function saveIssue(e) {
  var issueDesc = document.getElementById("issueDescInput").value;
  var issueSeverity = document.getElementById("issueSeverityInput").value;
  var issueAssignedTo = document.getElementById("issueAssignedToInput").value;
  var issueId = chance.guid();
  var issueStatus = "Open";

  var issue = {
    id: issueId,
    description: issueDesc,
    severity: issueSeverity,
    assignedTo: issueAssignedTo,
    status: issueStatus
  };

  if (localStorage.getItem("issues") == null) {
    var issues = [];
    issues.push(issue);
    localStorage.setItem("issues", JSON.stringify(issues));
  } else {
    var issues = JSON.parse(localStorage.getItem("issues"));
    issues.push(issue);
    localStorage.setItem("issues", JSON.stringify(issues));
  }

  document.getElementById("issueInputForm").reset();

  fetchIssues();

  e.preventDefault();
}

function fetchIssues() {
  var issues = JSON.parse(localStorage.getItem("issues"));
  var issuesListe = document.getElementById("issuesList");

  issuesListe.innerHTML = "";

  for (var i = 0; i < issues.length; i++) {
    var id = issues[i].id;
    var desc = issues[i].description;
    var severity = issues[i].severity;
    var assignedTo = issues[i].assignedTo;
    var status = issues[i].status;

    issuesList.innerHTML +=
      '<div class="well">' +
      "<h6>Issue ID:" +
      id +
      "</h6>" +
      '<p><span class="label label-info>' +
      status +
      "</span></p>";
    "<h3>" +
      desc +
      "</h3>" +
      '<p><span class="glyphicon glyphicon-time"></span>' +
      severity +
      "</p>" +
      '<p><span class="glyphicon glyphicon-user"></span>' +
      assignedTo +
      "</p>" +
      '<a href="#" onclick="setStatusClosed(\'' +
      id +
      '\')" class="btn btn-warning">Close</a>' +
      '<a href="#" onclick="deleteIssue(\'' +
      id +
      '\')" class="btn btn-danger">Delete</a>' +
      "</div>";
  }
}

我检查了 javascript 文件中<body onload="fetchIssues()">for (var i = 0; i < issues.length; i++)的函数是否存在问题。

我想制作一个 javascript 问题跟踪器应用程序,每次单击提交按钮时,javascript 中的功能都不起作用。

 var virtualLocalStorage = null; var id = 1; document.getElementById("issueInputForm").addEventListener("submit", saveIssue); function saveIssue(e) { var issueDesc = document.getElementById("issueDescInput").value; var issueSeverity = document.getElementById("issueSeverityInput").value; var issueAssignedTo = document.getElementById("issueAssignedToInput").value; // var issueId = chance.guid(); // this throws an error var issueId = id++; var issueStatus = "Open"; var issue = { id: issueId, description: issueDesc, severity: issueSeverity, assignedTo: issueAssignedTo, status: issueStatus }; // if (localStorage.getItem("issues") == null) { if(virtualLocalStorage == null) { var issues = []; issues.push(issue); // localStorage.setItem("issues", JSON.stringify(issues)); virtualLocalStorage = JSON.stringify(issues); } else { // var issues = JSON.parse(localStorage.getItem("issues")); var issues = JSON.parse(virtualLocalStorage); issues.push(issue); // localStorage.setItem("issues", JSON.stringify(issues)); virtualLocalStorage = JSON.stringify(issues); } document.getElementById("issueInputForm").reset(); e.preventDefault(); // move this here fetchIssues(); } function fetchIssues() { // var issues = JSON.parse(localStorage.getItem("issues")); var issues = JSON.parse(virtualLocalStorage); var issuesListe = document.getElementById("issuesList"); issuesListe.innerHTML = ""; for (var i = 0; i < (issues||[]).length; i++) { var id = issues[i].id; var desc = issues[i].description; var severity = issues[i].severity; var assignedTo = issues[i].assignedTo; var status = issues[i].status; issuesList.innerHTML += '<div class="well">' + "<h6>Issue ID:" + id + "</h6>" + '<p><span class="label label-info>' + status + "</span></p>"; "<h3>" + desc + "</h3>" + '<p><span class="glyphicon glyphicon-time"></span>' + severity + "</p>" + '<p><span class="glyphicon glyphicon-user"></span>' + assignedTo + "</p>" + '<a href="#" onclick="setStatusClosed(\\'' + id + '\\')" class="btn btn-warning">Close</a>' + '<a href="#" onclick="deleteIssue(\\'' + id + '\\')" class="btn btn-danger">Delete</a>' + "</div>"; } }
 <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> </head> <body onload="fetchIssues()"> <div class="container"> <h1>JS IssuteTracker change <small>by CodingSmartWay.com</small></h1> <div class="jumbotron"> <h3>Add New Issue:</h3> <form id="issueInputForm"> <div class="form-group"> <label for="issueDescInput">Description</label> <input type="text" class="form-control" id="issueDescInput" placeholder="Describe the issue ..."> </div> <div class="form-group"> <label for="issueSeverityInput">Severity</label> <select id="issueSeverityInput" class="form-control"> <option value="Low">Low</option> <option value="Medium">Medium</option> <option value="High">High</option> </select> </div> <div class="form-group"> <label for="issueAssignedToInput">Assigned To</label> <input type="text" class="form-control" id="issueAssignedToInput" placeholder="Enter responsible ..."> </div> <button type="submit" class="btn btn-primary">Add</button> </form> </div> <div class="col-lg-12"> <div id="issuesList"> </div> </div> <div class="footer"> <p>&copy CodingTheSmartWay.com</p> </div> </div> <script src="app.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> </body>

尝试使用此工具,希望对您有所帮助。

[ https://validatejavascript.com/]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM