Javascript 使用JS或AJAX的HTML表单POST

Javascript 使用JS或AJAX的HTML表单POST,javascript,html,ajax,Javascript,Html,Ajax,我已经知道使用ajax发布html表单的两种方法 例如 <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script type='text/javascript'> /* attach a submit handler to the form */ $("#clientInfo").submit(function(event) { m

我已经知道使用ajax发布html表单的两种方法

例如

  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script type='text/javascript'>
    /* attach a submit handler to the form */
      $("#clientInfo").submit(function(event) {
          message = $('#name').val();
      /* stop form from submitting normally */
      event.preventDefault();
      var $form = $(this),
          url = 'post2.php';

      /* Send the data using post with element id name and name2*/
      var posting = $.post(url, { message: message });



    });
</script>

/*将提交处理程序附加到表单*/
$(“#clientInfo”).submit(函数(事件){
message=$('#name').val();
/*阻止表单正常提交*/
event.preventDefault();
var$form=$(此),
url='post2.php';
/*使用带有元素id name和name2的post发送数据*/
var posting=$.post(url,{message:message});
});
这很好,但只有在调用event.preventDefault()时才有效,这将阻止页面实际提交

还可以使用return false

我的问题是,是否可以在不停止实际提交的情况下发布?不需要event.preventDefault()并返回false?我希望页面提交正常,但我需要张贴一些数据,而这是发生的


请给我一些建议

event.preventDefault()用于防止表单元素在提交时导航到其他URL或页面的默认操作。如果需要,可以手动导航到其他页面。否则,preventDefault将用于保持操作页面的基础,以便可以有效地使用ajax(异步js)。

我不确定您想做什么,但也许您可以通过

  • 防止违约
  • 发送您的数据
  • js再次提交
  • 大概是这样的:

        //the namespace of event would help the unbinding after
    $("#clientInfo").bind('submit.waitSubmittion', function(event) {
        message = $('#name').val();
    
        event.preventDefault();
        var $form = $(this),
            url = 'post2.php';
    
        /* Send the data using post with element id name and name2*/
        var posting = $.post(url, { message: message }, function(){
            //after we sure the call made,
            //unbind our event (including prevent default) and submit the form
            $form.unbind('submit.waitSubmittion').trigger('submit')
        });
    
    
    
    });
    
    试试这个:

    $("#clientInfo").on('submit', function(e) {
     e.preventDefault();
     var data = $(this).serializeArray();
     $.ajax({
       url : 'whatever.php', // page where you are sending data
       type : 'post',
       data : data,
       success : function(data){
         alert(data); // do whatever you want
       }
     });
    });
    

    没什么意义。如果在表单中设置了
    操作
    方法
    ,并且输入了
    名称
    ,则无需使用ajax。表单将以与
    $相同的格式发送数据。post
    post是一种与服务器通信的方法。为了提交,您需要任何http方法