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

我想在发送表单之前找到任何更改数据的通用方法。 它是,如果我有一个

包含某个类型(类)的和用户按下发送按钮,我想将此输入值转换为另一种格式,以便以更正的格式到达服务器。

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

使用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, ... }) }) 

参考

  • 提交()
  • jQuery CSS Selector
  • 表格序列化()

也许这个

 $(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()之前做任何你喜欢的事情。 要向所有输入类型提交添加相同的函数,然后使用type =按钮迭代所有输入元素,并将onclick处理函数添加到其中。

你的所有表单都需要是同一种类,或者如果有些使用输入类型=提交,而其他人使用你自己的javascript按钮元素,那么你将不得不调整它。