我想在发送表单之前找到任何更改数据的通用方法。如果我的<form>
包含<input>
某种类型(类)并且用户按发送按钮,我想将此输入值转换为另一个格式,以便以更正的格式到达服务器。
我知道我可以设置一个 submit()处理程序来处理数据,但我需要一个通用的解决方案,在所有页面表单上加载时设置这个机制并忘记它(可能会发送一些表单)通过AJAX,其他使用Jquery.validate发送等)
答案 0 :(得分:6)
使用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,
...
})
})
答案 1 :(得分:1)
也许这个
$(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"));
});
});
答案 2 :(得分:-1)
是的,为什么不呢?
在表单提交按钮上单击onclick,在调用submit()之前,您可以执行任何操作。要向所有输入类型提交添加相同的函数,然后使用type =按钮迭代所有输入元素,并将onclick处理函数添加到其中。
您的所有表单都必须属于同一种类型,或者如果某些表单使用输入类型=提交,而其他表单使用带有您自己的javascript的按钮元素,则您必须对其进行调整。