Javascript HTML表单操作-";“操作顺序”;

Javascript HTML表单操作-";“操作顺序”;,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,我在我的站点上有一个HTML表单,在使用jQuery验证之后,它通过Ajax提交到一个php文件。以下是开始表单标签: <form action="#" method="post"> 我的问题: 启用JavaScript时提交表单时,“操作顺序”文件应包含哪些内容 它会首先使用php操作路径吗?还是会先尝试通过JavaScript提交 **更新: 下面是我的JS,它用于通过Ajax提交 $( document ).bind( "pageinit", function( even

我在我的站点上有一个HTML表单,在使用jQuery验证之后,它通过Ajax提交到一个php文件。以下是开始表单标签:

<form action="#" method="post">
我的问题

  • 启用JavaScript时提交表单时,“操作顺序”文件应包含哪些内容
  • 它会首先使用php操作路径吗?还是会先尝试通过JavaScript提交
**更新: 下面是我的JS,它用于通过Ajax提交

$( document ).bind( "pageinit", function( event, data ) {
    $("#rackback-quote-request-form").validate({
        // Custom validation messages
        messages: { quote_name: "Please enter your full name."},
        errorElement: "p",
        submitHandler: function(form){

            //Get the data from the form fields and format correctly
            var product = $("#rackback-quote-request-form #product").val();


            var data = 'product=' + product;
            $.ajax({
              type: "POST",
              url: "../php/QR-rackback.php",
              data: data,
              success: function(data) { 
                      $("#rackback-quote-request-wrapper").hide();
                      $("#rackback-quote-request-success").append("<center><h3>Thanks! Your quote request has been sent.</h3></center>" );
                   },
              error: function(){
                  alert("Javascript error, please try again");
              }
            });
            return false;
         }
    });
});
$(document).bind(“pageinit”,函数(事件,数据){
$(“#机架式报价申请表”)。验证({
//自定义验证消息
信息:{quote_name:“请输入您的全名。”},
错误元素:“p”,
submitHandler:函数(表单){
//从表单字段中获取数据并正确设置格式
var product=$(“#回溯报价申请表#product”).val();
var数据='产品='+产品;
$.ajax({
类型:“POST”,
url:“../php/QR rackback.php”,
数据:数据,
成功:函数(数据){
$(“#回溯报价请求包装”).hide();
$(“#回溯报价请求成功”)。追加(“谢谢!您的报价请求已发送”);
},
错误:函数(){
警报(“Javascript错误,请重试”);
}
});
返回false;
}
});
});

我将把
事件.preventDefault()放在哪里?**

JavaScript首先被执行,使用它您可以抑制发送表单的正常(HTML方式)

<form action="../path_to_process_file.php" method="post">
根据您使用的框架,有很多方法可以做到这一点,但使用简单的纯JavaScript,您可以遵循以下步骤:

  • 将“onSubmit”事件附加到表单
  • 如果您想取消表单的“正常提交”(HTML方式),只需返回false

嗯,您的JS需要附加到提交事件。在这种情况下,您可以阻止它做它自然会做的事情,如下所示:

$('#form_id').submit(function(event) {
    event.preventDefault();
    // use jQuery's ajax() method here to do what you want
});

考虑使用诸如<代码>函数(e){EpRebug Debug());}停止一般POST;通过这种方式,您可以在JavaScript可用时控制操作我只知道一点JQuery(我使用MooTools),但我认为您应该在脚本开始时执行event.preventDefault()。在MooTools的情况下,该方法阻止事件的默认操作,而不会以任何方式阻止以下操作?换句话说,如果启用,我将如何强制通过Javascript提交?正如我在下面的回答中所建议的,您可以通过类似event.preventDefault()的方式抑制JS中的正常HTML操作;如果您已经连接到
submit
事件,浏览器将同时执行这两项操作(运行js,然后正常提交),除非您使用
event.preventDefault()
,正如这个答案所示。您注意到第二行了吗?如果添加event.preventDefault();您已禁止原始HTML操作。很抱歉,我第一次错过了它。。。我在顶部更新了我的代码。我将把
事件.preventDefault()放在哪里?我不知道您正在使用验证。。。这稍微改变了一点。据我所知,submitHandler已经取代了标准的HTML操作,因此您根本不必添加preventDefault。。。您是否确实在提交表单时遇到问题?如果是的话,你会遇到什么问题?到目前为止我还没有遇到过问题。。。我只是想知道(供将来参考)是否所有浏览器都会默认按我所希望的方式通过JavaScript提交。