Ajax和EJS - Ajax调用不适用于下一个表单

时间:2018-01-24 22:00:06

标签: javascript jquery node.js ajax ejs

我有一个表格,可以为每个注册学生创建一个表单,每个表单按钮都有不同的学生ID。 When I clicked on the button, I want the student's mongoDB ID and his/her name to display on the textbox on the left.

这是EJS档案:

<tbody>
    <% students.forEach(function(data) { %>
        <tr>
             <td>
                <form id="addGrades" action="/teacher/add-score/<%= data._id %>">
                    <button id="addScores" class="ui button" type="submit">
                        <%= data.lastName + ", " + data.firstName + ", " + data.middleName %>
                    </button>
                </form> //code continues

我的Ajax脚本:

&#13;
&#13;
$(document).ready(function(){
    $("body").on("submit", "#addGrades", function(e){
        e.preventDefault();
        var addScore = $("#addGrades");
        $.ajax({
            url: addScore.attr("action"),
            contentType: "application/json",
            success: function(result){
                var form = $("#studentDetails");
                var inputID = $("#studentID");
                var inputName = $("#studentName");
                inputID.val("");
                inputName.val("");
                inputID.val(result.foundStudent._id);
                inputName.val(result.studentName);
            }
        });
    });
&#13;
&#13;
&#13;

快递路线:

&#13;
&#13;
router.get("/teacher/add-score/:id", function(req, res){
    var studentID = req.params.id;
    userModel.findById(studentID, function(err, foundStudent){
        if(err) {
            console.log(err);
        } else {
            var studentName = foundStudent.firstName + " " + foundStudent.middleName + " " + foundStudent.lastName;
            res.send({foundStudent: foundStudent, studentName: studentName});
        }
    })
});
&#13;
&#13;
&#13;

问题当我点击第一个数据的第一个按钮(Nicolas的第一行)时,它可以工作,但是当我点击第二个数据(带Darktower的按钮)时,它没有& #39;吨。所以我尝试删除Ajax脚本并尝试在控制台上记录结果,并记录正确的数据。所以,问题可能出在我的Ajax脚本中。我已经在网上搜索过了,但似乎都没有。

1 个答案:

答案 0 :(得分:0)

<强>解

这是我的HTML结构。 jQuery努力寻找我点击的按钮,所以我在单击的按钮上添加了一个单击的类,并将其用于jQuery。