Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何拦截自动提交表单?_Javascript_Php_Jquery_Xml - Fatal编程技术网

Javascript 如何拦截自动提交表单?

Javascript 如何拦截自动提交表单?,javascript,php,jquery,xml,Javascript,Php,Jquery,Xml,我的问题是我需要将XML数据发布到支付网关 我试图从中找到答案,但我需要截取提交以操纵数据 因此,我尝试了以下方法: <html> <form id="myForm" action="<?php echo $url; ?>" method="post"> </form> <script type="text/javascript"> $(document).ready (function () { document.getEl

我的问题是我需要将XML数据发布到支付网关

我试图从中找到答案,但我需要截取提交以操纵数据

因此,我尝试了以下方法:

<html>
<form id="myForm" action="<?php echo $url; ?>" method="post">

</form>
<script type="text/javascript">
$(document).ready (function () {
    document.getElementById('myForm').submit();

    $('#myForm').submit(function (e) {
        console.log('A');

        e.preventDefault();

        alert("a");

        $.post("<?php echo $url; ?>", {'data': formxml}, function (data) {
            // callback logic
        });
    });
});
</script>
</html>
然而,它并没有像我预期的那样工作

当我执行document.getElementById'myForm'.submit时,我希望$'myForm'.submit将拦截它,我可以进行数据验证


我应该如何继续进行才能达到预期的结果?

问题是,在jQuery设置事件侦听器时,您正在使用普通JavaScript触发提交。改变

document.getElementById('myForm').submit();


您应该会看到预期的结果。

快速指针-Javascript是逐行解释的。意思是第一行在第二行之前被执行

在您的情况下,请使用以下行:

document.getElementById('myForm').submit();
是在以下时间之前执行的:

$('#myForm').submit(function (e) {
    console.log('A');

    e.preventDefault();

    alert("a");

    $.post("<?php echo $url; ?>", {'data': formxml}, function (data) {
        // callback logic
    });
});

如果这不是您期望的结果,请告诉我。

这是我期望的结果。非常感谢。
$('#myForm').submit(function (e) {
    console.log('A');

    e.preventDefault();

    alert("a");

    $.post("<?php echo $url; ?>", {'data': formxml}, function (data) {
        // callback logic
    });
});
<html>
<form id="myForm" action="<?php echo $url; ?>" method="post">

</form>
<script type="text/javascript">
$(document).ready (function () {
    $('#myForm').submit(function (e) {
        console.log('A');

        e.preventDefault();

        alert("a");

        $.post("<?php echo $url; ?>", {'data': formxml}, function (data) {
            // callback logic
        });
    });

    $('#myForm').submit();
});
</script>
</html>