我想在表单提交之前执行pergunta1
函数。
HTML代码:
<form id="myform2" action="send_mail.php" method="post" onsubmit="beforeSubmit(this)">
<input type="image" name="" id="Image1final"src="Imagens/R2.jpg" value="R1" border="0" onclick="pergunta1(this)" style="width:160px;height:160px;margin: 0 auto;display: none;" alt="" />
<input type="image" name="" id="Image2final"src="Imagens/R8.jpg" value="R2" border="0" onclick="pergunta1(this)" style="width:160px;height:160px;margin: 0 auto;display: none;" alt="" />
</form>
JavaScript代码:
function pergunta1(element) {
if (element.getAttribute("value") == "R1") {
res1 = "N1_1"
} else if (element.getAttribute("value") == "R2") {
res1 = "N1_2"
}
document.getElementById('Image1final').src = 'Imagens/R1.jpg'
document.getElementById('Image2final').src = 'Imagens/R2.jpg'
$("#Image1final").attr('value', 'N3_1');
$("#Image2final").attr('value', 'N3_2');
$("#Image1final").attr('onclick', 'pergunta2(this)');
$("#Image2final").attr('onclick', 'pergunta2(this)');
}
function pergunta2(element) {
cartafinal2 = element.getAttribute("value")
}
function beforeSubmit(element) {
if (cartafinal2 == 'N3_1') {
document.getElementById("subjectfinal").value = "Resultado do teste : 1";
} else if (cartafinal2 == 'N3_2') {
document.getElementById("subjectfinal").value = "Resultado do teste : 2";
}
}
有没有什么方法可以先执行pergunta2
然后执行beforesubmit
,或者将pergunta1
(N3_1或N3_2)的结果插入beforesubmit
上?
答案 0 :(得分:1)
如果要执行的操作是在提交表单之前调用beforeSubmit
,则实际上并不需要pergunta2
函数。
您只需更改图像的onclick属性即可调用beforeSubmit
。
在beforeSubmit中,您可以检索被单击元素的值,就像在pergunta2
中一样。
然后,使用document.getElementById("myform2").submit()
,可以在beforeSubmit
函数的末尾提交表单。
在下面的代码段中,我对表单的提交进行了注释,并添加了subjectfinal
文本字段,以便您可以测试它是否符合您的要求。
function pergunta1(element) {
if (element.getAttribute("value") == "R1") {
res1 = "N1_1"
} else if (element.getAttribute("value") == "R2") {
res1 = "N1_2"
}
document.getElementById('Image1final').src = 'Imagens/R1.jpg'
document.getElementById('Image2final').src = 'Imagens/R2.jpg'
$("#Image1final").attr('value', 'N3_1');
$("#Image2final").attr('value', 'N3_2');
$("#Image1final").attr('onclick', 'beforeSubmit(this)');
$("#Image2final").attr('onclick', 'beforeSubmit(this)');
}
function beforeSubmit(element) {
var cartafinal2 = element.getAttribute("value");
if (cartafinal2 == 'N3_1') {
document.getElementById("subjectfinal").value = "Resultado do teste : 1";
} else if (cartafinal2 == 'N3_2') {
document.getElementById("subjectfinal").value = "Resultado do teste : 2";
}
// Uncomment the line below to submit the form
// document.getElementById("myform2").submit();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myform2" method="post">
<input type="button" name="" id="Image1final" value="R1" border="0" onclick="pergunta1(this)" style="width:160px;height:160px;margin: 0 auto;" alt="" />
<input type="button" name="" id="Image2final" value="R2" border="0" onclick="pergunta1(this)" style="width:160px;height:160px;margin: 0 auto;" alt="" />
<input type="text" id="subjectfinal" />
</form>