表单onsubimt调用一个函数,然后弹出一个msg,询问用户是否想在提交表单之前继续他们的操作。这意味着Onsubimt表单中的函数需要等待用户最后输入才能完全执行表单。
这是下面的代码:
<form name="mailF" id="mailF" method="post" onsubmit="event.preventDefault(); return get_answer(null)" action="Mail-sender.php" enctype="multipart/form-data">
//more form data...
</form>
<div id="question">
Are you sure you want to send this email?
<button onclick="get_answer('Send')">Yes</button>
<button onclick="get_answer('No')">No</button>
</div>
使用Javascript:
function get_answer(val){
document.getElementById("question").style.display = "block";
if(val === "Send"){
return true;
}else if(val === "No"){
return false;
}else{
get_answer(val);
}
}
这就是我试图解决这个问题的方法。我继续循环函数get_answer,直到值为“发送”或“否”,但在控制台上我收到以下错误。 未捕获RangeError:超出最大调用堆栈大小,如果没有此错误,我还能如何实现此功能,是否有更好的方法来实现它?
注意:我在表单上保留了 event.preventDefault(); ,否则它会在trowing错误后执行操作。
由于
答案 0 :(得分:2)
请忽略
else{
get_answer(val);
}
一部分。这完全没必要。 而不仅仅是返回true或false,在&#34;发送&#34;。
的情况下提交表单if(val === "Send"){
document.getElementById("mailF").submit();
}