【发布时间】:2017-05-03 22:12:18
【问题描述】:
我正在尝试在节点中进行多项选择问卷。我有一个 forEach 循环打印问题和答案字段的表单。问题是我无法在我正在进行比较的 jQuery 文件中获得正确的变量。
在 EJS 中使用 forEach 循环并在 jQuery 文件中检查它。
jQuery 文件:
$(document).ready(function(){
$('.bcheck').click(function(){
var on = 1;
var ans = $(this).attr('realanswer');
var theirAns = $("input[placeholder=Answer]").val();
console.log(ans);
if(ans == theirAns){
//DO SOMETHING
}
});
});
var theirAns = $("input[placeholder=Answer]").val(); 的值保留在迭代中的第一个元素。我可以使用这个函数来获取不是我点击的项目元素的值吗?
EJS 文件的 HTML:
<% topic.questions.forEach(function(question){ %>
<% if(question.difficulty == 10){ %>
<form action="/lesson/<%= lesson._id %>/topic/<%= topic._id %>/course/<%= question._id %>/quest?_method=PUT" method="POST">
<div class="quest_info questionf">
<%= question.question %>?
<div class="text_input">
<input type="hidden" name="res[_id]" value="<%= question._id %>">
<input type="hidden" name="realAnswer" value="<%= question.answer %>">
<input id="correct" type="hidden" name="res[correct]" value="<%= false %>">
<% if(question.question_type == "multiple"){ %>
<% var ran = ranNumber(0, 3) %>
<% var n = 0; %>
<% question.wrong_answers.forEach(function(wAns){ %>
<div class="bw btn btn-success" value="<%= wAns %>"> <%= wAns %> </div>
<% if(ran == n){ %>
<div class="ba btn btn-success "><%= question.answer %></div>
<% }; %>
<% n += 1; %>
<% }); %>
<input type="hidden" name="res[answer]" value="<%= question.answer %>" placeholder="Answer">
<% }else{%>
<input type="text" name="res[answer]" placeholder="Answer" >
</input>
</div>
<% }; %>
<div class="text_input">
<div class="bcheck btn btn-primary pull-right" realanswer="<%= question.answer %>" >Check Answer</div>
</div>
<% x += 1 %>
<div class="text_input">
</div>
</div>
<% }; %>
<% }); %>
【问题讨论】:
-
可以分享一下html吗?你在说什么 forEach 循环?
-
我已经添加了 forEach 循环。您可以忽略多个问题类型的任何内容。我只想为 jQuery 文件中的每次迭代获取
<input type="text" name="res[answer]" placeholder="Answer" >的值 -
$(this).closest('form').find("input[placeholder=Answer]").val(); -
我确实试过了,但它仍然只返回第一个值。
-
@JoshHorton 我相信它会起作用
var theirAns = $(this).closest('form').find("input[placeholder=Answer]").val();再试一次......你可以使用$(document).on('click','.bcheck',function(){ // your code here});
标签: javascript jquery node.js foreach