使用jquery submit($ .submit)如何在提交之前修改表单值?

时间:2013-07-25 02:07:45

标签: jquery forms http-post form-submit

在我的表单中,我想在提交表单之前删除一些特殊字符,如空格,如果用户输入的话。我通过以下方式明确地做到了这一点

$('input[type="text"]').each(function()
{
        var modifiedval=$(this).val().replace(//regexpr to remove the specialchar);
        $("#"+$(this).attr("id")).val(modifiedval);
 });
 $("form#myform").submit();

唯一的问题是,当表单提交时,在后端执行某些操作。发帖需要一些时间。因此,当删除特殊字符时,用户知道特殊字符将被删除。

我想要隐藏此操作。所以我在修改序列化数据后使用$.post方法发布表单。它也很好用。

但是URL不会进入操作页面。因为它确实在ajax中。但是我想把动作页面和修改后的数据一起去提交。是否可以在jQuery中修改数据提交。

1)我要实现的目标 - 用户在表单提交之前不得看到修改后的值,但需要将修改后的数据发布到后端。

注意:我无法更改已经开发的操作页面。

提前致谢。

2 个答案:

答案 0 :(得分:0)

在AJAX调用的成功回调函数中尝试此操作。

$.post('POST_URL', 'MODIFIED_DATA', function(data) { 
    window.location = 'YOUR_NEW_LOCATION';
});

答案 1 :(得分:0)

为什么不抓住对submitButton进行的click事件,然后在表单中获取值并制作控件,然后向服务器发出ajax请求,当然不要忘记停止提交操作按钮。您可以在此代码块内执行操作;

$("#submitButtom").on('click',function(evt) {
    evt.preventDefault();    //Prevents the default action of the button

    //Your controls
    //Your ajax request with the variables you want
    //You can redirect user to different pages on ajax's success return part
    //Or you can clear inside of your input boxes
}