![](/img/trans.png)
[英]Triggering multiple actions for single event-listener(on-click) in javascript
[英]Javascript how to move variables with event-listener?
我有以下函数,可从JSON对象写入多项选择题。
首先,这里的事件侦听器创建是否“合法”? 如果是这样,我希望由侦听器执行的函数(验证)获取单击了“提交”的表单的编号,以及选中的复选框的编号。 我怎样才能做到这一点? 谢谢。
function writeQuestions() {
len = questions.qestion.length;
for (var i = 0; i < len; i++) {
answerRdy = [];
qestionRdy = questions.qestion[i];
answerRdy[0] = questions.answer[i][0];
answerRdy[1] = questions.answer[i][1];
answerRdy[2] = questions.answer[i][2];
answerRdy[3] = questions.answer[i][3];
divID = "question-" + i;
formID = "form-" + i;
CurrentForm = i;
writeAnswer = [];
writeAnswer[writeAnswer.length] = ("\n<div id='{0}'>\n<form id='{1}' name='{1}'>\n").format(divID, formID);
writeAnswer[writeAnswer.length] = ("<b>" + qestionRdy + "</b><br />\n");
for (n=0; n<=3; n++) {
writeAnswer[writeAnswer.length] = ("<input type='radio' name='answerTo{0}' value='{1}' /> {2} <br />\n").format(CurrentForm, n, answerRdy[n]);
}
writeAnswer[writeAnswer.length] = ("<input type='submit' value='Submit your answer'>\n</form>\n</div><!--{0}-->").format(divID);
joinQuestion = writeAnswer.join();
exp = /,/gi;
fullQuestion = joinQuestion.replace(exp, "");
$('#container').append(fullQuestion);
document.forms[i].addEventListener('submit',validate);
}
}
您最好使用jquery commit()附加Submit事件,这样该函数将成为表单Submit事件处理程序的一部分。
<script type="text/javascript">
$(document).ready(function(){
$("form").submit(function(){
alert($(this).attr("id"));
alert("Checked radio " + $(this).find("input:checked").val())
//return false if you do not want to submit the form, otherwise comment it out
return false;
});
});
</script>
<form id="{1}">
<input type="radio" name="answer" value=1>
<input type="radio" name="answer" value=2>
<input type="submit" value="submit">
</form>
<form id="{2}">
<input type="radio" name="answer" value=3>
<input type="radio" name="answer" value=4>
<input type="submit" value="submit">
</form>
您应该监听提交按钮的点击,表单onclick应该返回false。 使用诸如jquery之类的框架来实现这些类型的功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.