1.想做一个问卷调查。 页面中有多个题目,每个题目下有多个选项,最后有一个提交按钮,提交时判断用户是否登录。题目和选项都是在jsp页面中通过$.ajax从后台动态获取以html形式显示在前台。 现在提交时需要获取选择的项和题目将其存入后台的数据库中,以便后台统计。
2.form表单
动态加载题目和选项
提交函数submitAnswer()
function submitAnswer(){
var userid = "${sessionScope.user.id}";
if(userid == '')
{
alert("未登录,跳转登录页面!");
var dt = new Date();
var urlRoot = window.location.pathname;
var urlParameter = window.location.search;
var url = urlRoot + urlParameter;
window.location.href = "${pageContext.request.contextPath}/web/index/toLogin.action?url="+url+"&dt="+dt.getTime();
} else {
var k = document.getElementById('sub').innerText;
var investigateTitle = "${iyInvestigate.title}";
var indvestigateID = "${iyInvestigate.id}";
//获取同一个主题活动下的题目集合
var subjectTitleCountObj = document.getElementsByName("pOptionTitle");
//var optionSelectCount = document.getElementsByName("liSelect").length;
//获取每一道题目以及相应的选项
for (var k=0;k < subjectTitleCountObj.length;k++){
//ids = optionTitleCountObj[k].id;
//存储题目
var subject = $("#p_0_"+ k).text();
//var val_ = $('input[type="radio"][name="answer'+k+'"]:checked').val();
//存储选中的项
var selectItem = "";
var radios = document.getElementsByName("answer"+k);
for (r = 0; r < radios.length;r++) {
if (radios[r].checked) {
selectItem = radios[r].nextSibling.data;
}
};
$.ajax({
type : "post",
dataType : "json",
url : "${ctx}/website/yjdc/investigate/submitAnswer.action",
data : {"investigateTitle": ${iyInvestigate.title},"investigateID":${iyInvestigate.id},"subjectOp":subject,"selectItemOp":selectItem,"userid":${sessionScope.user.id}},
success : function(rec)
{
}
});
// for (var j=0; j
3.现在的问题是在 function submitAnswer() {} 中加$.ajax({})根本进不了js函数submitAnswer。 去掉$.ajax({})才可以执行submitAnswer函数。
请各位大神指教。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
将ajax中data参数下的值用单引号新起来就好了,见如下代码
data : {"investigateTitle": '${iyInvestigate.title}',"investigateID":'${iyInvestigate.id}',"subjectOp":'subject',"selectItemOp":'selectItem',"userid":'${sessionScope.user.id}'},写个
console.log看看函数到底有没有进去。再者,你这个写法:
为什么在 js 文件中绑定事件呢:
html
js
你把你的submitAnswer()放到$(document).ready(function(){})试试