如何暂停/循环/继续循环等待onclick操作?

时间:2018-05-24 09:26:12

标签: javascript

表单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错误后执行操作。

由于

1 个答案:

答案 0 :(得分:2)

请忽略

else{
      get_answer(val);
  }

一部分。这完全没必要。 而不仅仅是返回true或false,在&#34;发送&#34;。

的情况下提交表单
if(val === "Send"){
    document.getElementById("mailF").submit();
}