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

时间:2011-10-11 18:23:08

标签: javascript jquery forms

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

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

3 个答案:

答案 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的按钮元素,则您必须对其进行调整。