强制点击提交按钮两次

Posted

技术标签:

【中文标题】强制点击提交按钮两次【英文标题】:Forced to click submit button twice 【发布时间】:2018-11-13 05:49:56 【问题描述】:

我有 Laravel 5.5 一个页面,它有两种形式但使用相同的控制器和方法。第一种形式是为了迎合最初的细节,但第二种形式是一种搜索形式。我的搜索表单有效,但只有当您单击搜索按钮两次时,我才能强制单击一次以提交该表单。

查看

<form name="FormSearch" id="FormSearch" method="post" action="!! action(MyController@index',$customID) !!">
<input type="text" name="searchDets" id="searchDets" value="" />
<input type="submit" class="btn btn-default" name="searchMe" id="searchMe" value= "Search Me"/>
</form>

Js

$('#FormSearch').click(function(e)
    e.preventDefault();
    $('#filterSearchForm').submit();
); 

我希望我的视图页面提交一次。

【问题讨论】:

分享你的 filterSearchForm 的代码 你为什么使用 preventDefault ? 我已经删除了 e.preventDefault 但它仍然需要用户点击两次 如果您确实必须使用javascript提交表单,请将提交按钮类型更改为按钮而不是提交。我并不是说这会导致您的问题,但会提高可读性和意图。 【参考方案1】:

首先,我找不到 id 为 filterSearchForm 的元素,所以,当你点击它时,我做了一个编辑,提交了相同的表单(即FormSearch):

$('#FormSearch').click(function(e)
    //e.preventDefault();
    $('#FormSearch').trigger('submit');
); 

我使用了触发事件,当您单击表单FormSearch 时,它会提交表单FormSearch

这是它的工作原理:

$('#FormSearch').click(function(e) 
  //e.preventDefault();
  $('#FormSearch').trigger('submit');
);

$("#FormSearch").submit(function(e)
  e.preventDefault();
  alert('submitted');
);
#FormSearch
  background: black;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form name="FormSearch" id="FormSearch" method="post" action="!! action(MyController@index',$customID) !!">
  <input type="text" name="searchDets" id="searchDets" value="" />
  <input type="submit" class="btn btn-default" name="searchMe" id="searchMe" value="Search Me" />
</form>

<p>
  ** Click anywhere on the black area.
</p>

我希望这会有所帮助。

【讨论】:

【参考方案2】:

我遇到了同样的问题,这是由于 js 版本。所以请检查您的 jquery.validate 版本。 您可以在这里获取更多信息submit button twice click issue

【讨论】:

以上是关于强制点击提交按钮两次的主要内容,如果未能解决你的问题,请参考以下文章

vue中阻止快速点击两次提交按钮调两次接口

vue中阻止快速点击两次提交按钮调两次接口

ios上有时候提交按钮点击两次才可以取消输入框软键盘

为啥我需要在提交按钮上单击两次才能提交我的表单?

按钮的ajax请求时,一次点击两次提交的问题

多次点击提交后如何只提交一次表单?