需要两次点击才能提交​​表单 - JQuery(如 *** 审查问题)

Posted

技术标签:

【中文标题】需要两次点击才能提交​​表单 - JQuery(如 *** 审查问题)【英文标题】:Require two clicks to submit a form - JQuery (like *** review question) 【发布时间】:2021-03-05 02:06:09 【问题描述】:

我正在尝试复制您在 *** 上看到的评论帖子功能,但我正在努力解决需要点击两次才能提交其中的一部分的问题。我的搜索返回了多个与 validate 相关的问题,但与我要查找的内容无关。

我有一个标准表格:

<form action="http://www.google.com/">
  <textarea name="text"></textarea>
  <input type="submit" name="review" value="Review" />
</form>

使用以下 jQuery:

$(function()
  $('form').submit(function()
    $('html, body').animate(scrollTop : $(".Anchor").offset().top, 300);
    return false; // to cancel form action
  );
);

我怎样才能使它在按下提交时转到锚点,然后在下次按下时提交表单?我也想将值从 review 更改为 submit,但我确信在收到对初始问题的回复后,我可以弄清楚这部分。

可以在here on CodePen找到我所拥有的实时样本

【问题讨论】:

也许保留一个变量来跟踪执行的事件并根据该变量的值执行滚动和表单提交。您可以使用此变量将名称从审核更改为提交。例如:let hasUserReviewedTheForm = false然后将第一次点击的变量值改为true然后改名提交表单。 【参考方案1】:

通过在函数中使用变量,您可以在单击时将变量从 true 切换到 false。使用此方法,您可以在 else 语句中操作任何您希望第二个操作出现的内容。

基于您提供的代码的示例:

$(function()
  let hasUserReviewedTheForm = false;
  $('form').submit(function()
    if(!hasUserReviewedTheForm) 
        $('html, body').animate(scrollTop : $(".Anchor").offset().top, 300);
        //change the form name and change the variable value
        hasUserReviewedTheForm = true;
        return false; // to cancel form action
    
    else 
      //Submit the form
    
  );
);

【讨论】:

他们脑子里放屁的时刻,当你像我这样的时候,我怎么没想到呢。想多了,谢谢你的简单解决方案。 哈哈!我也去过!

以上是关于需要两次点击才能提交​​表单 - JQuery(如 *** 审查问题)的主要内容,如果未能解决你的问题,请参考以下文章

使用 .on 和 .validate 的 jQuery 必须提交两次表单才能验证

在正确的信息通过之前需要提交两次PHP表单

强制点击提交按钮两次

表单提交两次mvc

jQuery提交表单两次

bootstrapValidator的自动提交方式,用于ajax验证是需要点击两次提交才能成功提交