当前位置: 首页 > 知识库问答 >
问题:

表单提交之前的jQuery函数

邵伟
2023-03-14

我试图在单击表单提交按钮时使用Jquery启动一个函数,但该函数需要在表单实际提交之前启动。

我试图在提交时将一些div标记属性复制到隐藏的文本字段中,然后提交表单。

我已经通过使用mouseover功能(当提交按钮悬停在上方时)成功实现了这一点,但这在使用触摸的移动设备上不起作用。

$("#create-card-process.design #submit").on("mouseover", function () {
    var textStyleCSS = $("#cover-text").attr('style');
    var textbackgroundCSS = $("#cover-text-wrapper").attr('style');
    $("#cover_text_css").val(textStyleCSS);
    $("#cover_text_background_css").val(textbackgroundCSS);
});

我玩过提交函数,但是当表单提交时,而不是之前,函数会触发,所以值不会保存在字段中。

非常感谢。

共有3个答案

葛海阳
2023-03-14

根据Wakas Bukhary的答案,您可以通过将最后一行放入响应范围来实现异步。

$('#myform').submit(function(event) {

  event.preventDefault(); //this will prevent the default submit
  var _this = $(this); //store form so it can be accessed later

  $.ajax('GET', 'url').then(function(resp) {

    // your code here 

   _this.unbind('submit').submit(); // continue the submit unbind preventDefault
  })  
}
柳正志
2023-03-14
$('#myform').submit(function() {
  // your code here
})

上述内容在Firefox中不起作用。表单只需提交,无需先运行代码。此外,其他地方也提到了类似的问题。。。比如这个问题。解决办法将是

$('#myform').submit(function(event) {

 event.preventDefault(); //this will prevent the default submit

  // your code here (But not asynchronous code such as Ajax because it does not wait for a response and move to the next line.)
  
 $(this).unbind('submit').submit(); // continue the submit unbind preventDefault
})
宣瀚
2023-03-14

您可以使用onsubmit函数。

如果返回false,则不会提交表单。在这里读一下。

$('#myform').submit(function() {
  // your code here
});
 类似资料:
  • 问题内容: JavaScript位: HTML位: 这就是我要使用的代码。我的想法是在使用Ajax发送表单之前,先验证所有输入。我现在已经尝试过许多版本,但是每次即使表单没有完全填写,最终还是要提交。我所有的输入都是“必需”类的。谁能看到我做错了吗? 另外,由于我的输入名称是用php生成的,因此我依赖于基于类的要求,因此我永远无法确定自己获得的名称或输入类型。 我在“页面”中显示/隐藏问题。 JS

  • 问题内容: 此代码正确吗?我正在尝试提交,如果文本区域再次为空,我也想提交。 我正在尝试上传: 谢谢… 问题答案: 用 代替 如果您使用的是最新版本的jquery。

  • 问题内容: 我有一个带有名称和未定义输入数量的表单。 我想做某种jQuery.get或ajax或类似的事情,它将通过Ajax调用页面,并发送表单的所有输入。 我想一种方法是做类似的事情 但是我不完全知道所有的表格输入。是否有仅发送所有表单输入的功能部件或功能? 问题答案: 您可以使用Ajax表单插件中的ajaxForm / ajaxSubmit函数或jQuery序列化函数。 AjaxForm :

  • 问题内容: 我的页面上有一个表单。该表单包含一个文本框和一个提交按钮。 提交表单后,通过单击按钮或在文本框中按Enter,我要进行查找(在这种情况下,使用Bing Maps对邮政编码进行地理编码),然后像往常一样将表单提交到服务器。 我当前的方法是将提交事件的处理程序添加到一个表单中,然后在完成后调用Submit(),但是我无法使它正常工作,并且无法调试问题: 问题答案: 是你的朋友在这里。在完成

  • 问题内容: 我有多个具有相同班级名称的表格 那么我如何才能在我尝试使用的这n个表格中提交一个表格 但是它总是在n个表单中提交第一个表单。如何在n个表单之间提交随机表单。愿任何人能帮助我。 问题答案: 序列化表格时,需要引用该表格…

  • 我有一个表单,用户可以注册一份时事通讯,但我无法让它正确提交。 当我单击submit按钮时,我会收到一条提示“Failure”,因此ajax请求将直接进入ajax请求中的错误集水区。 在我的php中,我得到所有的$u POST变量并将它们插入数据库,我知道脚本正在工作。我只想将消息返回到ajaxsuccess,以便将消息显示给用户。 我到处寻找解决办法,但都找不到。 和jQuery的表单 使现代化