Javascript 如何使用EJS在函数中发送多个参数
我正在尝试做一些页面上的表单提交。当用户勾选复选框时,它会通过使用onclick()调用函数提交正确的表单来提交表单,从而标记他们在某一周内参加某个课程的情况。每个班级最多可有8名学生,每个学生将有6个复选框。表格由学生Id和每周课程循环中的数字标识。Javascript 如何使用EJS在函数中发送多个参数,javascript,node.js,ejs,Javascript,Node.js,Ejs,我正在尝试做一些页面上的表单提交。当用户勾选复选框时,它会通过使用onclick()调用函数提交正确的表单来提交表单,从而标记他们在某一周内参加某个课程的情况。每个班级最多可有8名学生,每个学生将有6个复选框。表格由学生Id和每周课程循环中的数字标识。 我遇到的问题是,当我尝试将这两个标识EJS变量作为参数发送到submit函数时,该函数从未被调用 我尝试只发送1个参数,效果很好。我需要这两个参数,以便能够使其正常工作。如果没有它们,某些复选框将尝试提交其他表单,这会破坏应用程序 <%
我遇到的问题是,当我尝试将这两个标识EJS变量作为参数发送到submit函数时,该函数从未被调用 我尝试只发送1个参数,效果很好。我需要这两个参数,以便能够使其正常工作。如果没有它们,某些复选框将尝试提交其他表单,这会破坏应用程序
<% foundClass.students.forEach(function(foundStudent){ %>
<tr>
<% for(let i=0; i < foundStudent.attendance.length; i++){ %>
<td>
<form id="attendanceCheckbox<%= foundStudent._id %><%= i %>" action="/dashboard/class/<%= foundClass.title %>/<%= foundClass.date %>/attendance/<%= foundStudent._id %>/<%= i %>" method="post">
<% if(foundStudent.attendance[i] === true){ %>
<input class="form-check-input m-0" type="checkbox" id="checkBox" name="attendance" value="false" onclick="attendanceSubmit(<%= foundStudent._id %>, <%= i %>)" checked>
<% } else { %>
<input class="form-check-input m-0" type="checkbox" id="checkBox" name="attendance" value="true" onclick="attendanceSubmit(<%= foundStudent._id %>, <%= i %>)">
<% } %>
</form>
</td>
<% } %>
<tr>
<% } %>
<script>
function attendanceSubmit(studentId, classNumber){
document.getElementById('attendanceCheckbox' + studentId + classNumber).submit();
}
</script>
函数出席人数Submit(学生ID、班级编号){
document.getElementById('attendanceCheckbox'+studentId+classNumber.).submit();
}
以下是我找到的解决方案: 每个EJS变量必须用引号括起来。
onclick='attendanceSubmit(“,”)'
我使用单引号作为用于定义onclick操作的引号。传递到函数中的每个参数也必须用引号括起来,因此这些参数必须使用双引号。我找到了一个解决方案:每个EJS变量必须用引号括起来。onclick='attendanceSubmit(“,”)'我使用单引号作为用于定义onclick操作的引号。传递到函数中的每个参数也必须用引号括起来,因此必须对这些参数使用双引号。当呈现页面时,如果右键单击一个输入并选择“inspect”,onclick内会显示什么?@Razielx4,它会显示
attendanceSubmit(0)
第一个,attendanceSubmit(1)
第二次输入,每次输入再继续4次。它完全忽略第一个参数。但是,此ejs变量在表单id名称中使用时工作正常。您确定它在表单id中工作正常吗?你能点击inspect并告诉我你看到了什么吗?我不知道你为什么把@razielx4疯狂
放在这里。我输入表单ID以便javascript可以提交正确的表单。.\u id和i是身份识别者恭喜你搞定了!你应该用真实的答案回答你自己的问题,而不是把它贴在问题上。