Javascript 如何拦截自动提交表单?
我的问题是我需要将XML数据发布到支付网关 我试图从中找到答案,但我需要截取提交以操纵数据 因此,我尝试了以下方法: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
<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>