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

Iva*_*van 8 javascript forms jquery

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

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

air*_*tyh 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,
       ...
    })
})
Run Code Online (Sandbox Code Playgroud)

参考


rap*_*ura -2

是的,为什么不?

单击表单提交按钮,然后在调用 Submit() 之前您可以执行任何您喜欢的操作。要向所有输入类型添加相同的函数,请提交,然后使用 type=buttons 迭代所有输入元素,并向其中添加 onclick 处理函数。

您的所有表单都必须是同一类型,或者如果有些表单使用 input type=submit,而其他表单则使用带有您自己的 javascript 的按钮元素,那么您将必须对此进行调整。

  • onclick() 处理程序不会捕获所有内容 - 许多人在没有单击“完成!”的情况下提交表单。按钮。 (3认同)