是否可以在发送之前更改表单数据?

Is it possible to change form data before sending it?

本文关键字:表单 数据 是否      更新时间:2023-09-26

我想找到在发送表单之前更改数据的任何通用方法。它是,如果我有一个包含特定类型(类)的<input><form>和用户按发送按钮,我想将此输入值转换为另一种格式,以便它以正确的格式到达服务器。

我知道我可以设置一个submit()处理程序来处理数据,但是我需要一个通用的解决方案,在所有页面表单加载时设置这个机制,然后忘记它(也许有些表单是通过AJAX发送的,其他的使用Jquery)。验证发送,等等)

使用jQuery的选择所有的表单元素:$('form')和注册一个处理程序的形式submit事件。像这样:

$('form').submit(function(e){
    e.preventDefault()
    var $this = $(this)
    var formData = $this.serialize()
    // do some thing to it
    var yourData = transform(formData)
    $.ajax({
       post: $this.attr('action'),
       data: yourData,
       ...
    })
})
引用

  • submit ()
  • jQuery CSS选择器
  • 形式序列化()

也许这个

$(document).ready(function() {
  $("form").on("submit",function() {
    var form = $(this);
    var field = form.find("input[name=first_name]");
    if (field.length()>0) field.val(field.val().replace("a","b")); 
  });
});

是啊,为什么不呢?

在表单提交按钮上有一个onclick,在那里你可以在调用submit()之前做任何你喜欢的事情。要向所有输入类型submit添加相同的函数,然后使用type=按钮遍历所有输入元素,并向其添加onclick处理函数。

你所有的表单都需要是相同的类型,或者如果一些使用input type=submit而另一些使用button元素与你自己的javascript,那么你将不得不调整。