0

使用 jQuery 提交表单

作品

         $('#testform').submit();

不工作

              $('#testform').submit(function () {
                 alert('test1');
                return true;
              });

这只是一个例子,但有时我想在提交表单之前做一些事情。例如使用提交表单$.POST

更新:

如果我同时保留两者,则$.POST没有任何价值,因为表单仍然以传统方式提交,没有 ajax...

                    $("#testform").submit(function() {
                            $.post('/myajaxcontroller', function(data) {
                                $('#result').html(data);
                            });
                    });
                    $("#testform").submit();   
4

3 回答 3

1

第一个示例提交表单。第二个示例为您提交表单时设置一个事件处理程序。你需要两者;

如果您需要异步操作,您将被迫return false从提交处理程序中进行,因此表单不会被提交,您可以在 AJAX 回调中提交表单。

 // Send an AJAX request before submitting the form
 $('#testform').submit(function () {
     var form = this;
     $.post('/myajaxcontroller', function(data) {
         $('#result').html(data);
         // everything is good, submit the form on our own
         if (data.looksGood) {
             form.submit();
         }
     });

     return false;
 });
于 2012-10-16T03:37:05.707 回答
0
$('#testform').submit();

此行立即调用提交(提交正在运行!)

$('#testform').submit(function () {

    // Do some stuff

    return true;
});

此行仅定义在提交表单之前将调用哪个回调函数。您应该注意文档,jQuery 函数在有和没有参数的情况下不会做同样的工作。

于 2012-10-16T03:40:19.343 回答
0

使用 prevent default 来阻止默认提交的发生

  $("#testform").submit(function(e) {
       e.preventDefault()  //< ---- Add this
       $.post('/myajaxcontroller', function(data) {
       $('#result').html(data);
        });
  });

  $("#testform").submit();   
于 2012-10-16T04:58:33.890 回答