jQuery已提交与提交

时间:2010-07-09 19:54:06

标签: javascript jquery ajax forms

我正在开发一个jQuery函数,它将表单数据转发到页面而不会干扰正常提交。只要我使用.submit()捕获提交,我就可以毫无问题地执行此操作,但我必须对数据运行自己的验证,因为它独立于常规提交而运行。有没有办法让jQuery(或任何Javascript)检测到表单数据已经发布和验证?

欢呼声, 麦克

编辑:

工作流程如下所示:
1.用户输入数据
2.点击提交
3.网站运行验证并接受输入
4.将数据提交到新页面
5. jQuery函数检测到提交和接受的新数据,以便运行。

更多针对清晰度的修改

我想你们都错过了这个问题。我知道如何检测一个表格正在被提交(这是好的和花花公子)

这是我想要的:

    $(this).each(function(){
           $(this).submit(function(){
                *** Code ***
           }
       }

假设我有一个独立于我正在编写的代码运行的验证脚本。如何检测到这种情况,然后转到上面的提交代码?

3 个答案:

答案 0 :(得分:2)

onsubmit=""元素上使用<form>,但返回false。即:

<form action="?" method="post" onsubmit="validate_and_submit(this);return false;">

return false阻止实际提交表单,以便您可以使用AJAX进行操作。

希望这有帮助!

答案 1 :(得分:2)

这里需要的是AJAX。因此,请发送到您的服务器并发布数据的XHR请求。服务器的响应现在将转到回调函数(您的jquery函数)。如果数据经过验证并且没有问题,那么您可以继续进行,否则就会停止。
您正在尝试通过正常的HTTP POST请求进行操作。

答案 2 :(得分:1)

编辑:原始澄清

如果您希望服务器仅接收经过验证的数据,那么只需确保在客户端验证发生之前未将其提交。您可以根据验证结果有选择地调用 event.preventDefault()来执行此操作。

$("#form").submit(function(event) {

     //some stuff
     if (validate(formdata) == false) { 
        event.preventDefault();
     } 

});

如果您希望服务器进行验证并提交给自己或其他服务,则应该将其作为服务器端工作流的一部分。所以它就像

1。)客户提交给Service1

2。)Service1验证

3。)Services1提交给Service2(这样service2永远不会从其他地方接收代码)