重新提交具有 jQuery 提交函数并返回 False 的表单

Posted

技术标签:

【中文标题】重新提交具有 jQuery 提交函数并返回 False 的表单【英文标题】:Resubmitting a Form That Has jQuery Submit Function and Return False 【发布时间】:2012-05-09 18:06:16 【问题描述】:

我正在使用 jquery 在提交表单时调用操作。我也在使用 return false;以防止页面被刷新。但是,当我尝试重新提交表单时 - 它不起作用,但我需要它(例如,在字段中输入新数据)。

目前,我正在使用这种结构化:

<form action="" method="POST" id="myform">
<input type="text" name="test" value="test">
</form>

    $(document).ready(function()
    $('#myform').submit(function()
    // Some action here
    return false;
    );
    );

编辑:我不想提交表单。我只想让它在每次按下提交按钮时触发一个 jQuery 函数。对于当前示例,该操作仅起作用一次(第一次按下提交按钮时)。似乎阻止完全停止了提交按钮的功能。

EDIT2:好的,让我澄清一下。我没有提交按钮。我只有一个文本输入,每当有人填写它并按下 Enter 键(例如,表单的提交被触发)我想通过 jQuery 获取这个输入值并做一些事情。问题是现在我只能这样做一次(在文本输入中使用新值第二次按 enter 没有任何作用)。我猜是 return false 导致了这个。

【问题讨论】:

当然不行。您使用return false 阻止了表单提交。 如果您需要在某些时候提交表单,则根据某些条件设置返回值。 【参考方案1】:

删除 return false 然后它可以工作。您正在阻止提交表单。

$(document).ready(function() 
    $("myButton").click(function() 
        $('#myform').submit(function() 
            // Some action here
            //return false;
        );
    );
);​

【讨论】:

好的,但是当我第一次点击提交按钮时,这不会提交表单吗?我希望它只运行一个 jQuery 函数,但每次单击提交按钮时都运行它(实际上没有通过 POST 或 GET 提交表单数据并转到另一个 URL) 您可以在表单提交时设置条件。例如:if(condition) return true else return false 我已经用关于这个问题的更多信息编辑了我的问题。我有一个只有一个输入文本的表单(没有提交按钮)。我在填写字段并按 Enter 并处理数据后捕获提交请求。但是,由于 jQuery 中的 return false ,这只能工作一次(我想这是问题所在,可能是其他问题)。

以上是关于重新提交具有 jQuery 提交函数并返回 False 的表单的主要内容,如果未能解决你的问题,请参考以下文章

Django:jQuery触发表单提交onchange of checkbox并保留重新加载时的值

使用 jQuery 时提交表单不起作用

防止在 jQuery 委托“提交”操作上提交 IE 表单

显示消息后重新加载页面,jQuery

jQuery 和 Django 表单验证重新加载和提交事件监听器

在 jQuery Mobile 中操作历史