我想在发送表单之前找到任何更改数据的通用方法。 它是,如果我有一个
我知道我可以设置一个submit()处理程序来处理数据,但我需要一个通用的解决方案,在所有页面表单上加载时设置这个机制并忘记它(也许某些表单由AJAX发送,其他使用Jquery.validate发送等)
使用jQuery选择所有表单元素: $('form')并为表单submit事件注册处理程序。 像这样的东西:
$('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, ... }) })
也许这个
$(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按钮元素,那么你将不得不调整它。