gpt4 book ai didi

javascript - $.post jQuery 仅当在 post 函数内发出警报时才起作用

转载 作者:行者123 更新时间:2023-12-03 07:08:01 25 4
gpt4 key购买 nike

我的按钮是:

<button type="submit" name="submit" class="btn-primary btn-block"
id="submit">Login</button>

我的表格是:

<form action="b.php" method="post" id="formID" onsubmit="return post();">

我的 JS 函数是:

function post()
{
var cvs = $('#client-nbr').val();
var cs = $('#cs').val();
$.post('a.php',{postcvs:cvs,postch1:cs});
alert("Post Function work");
}

我的问题是:当我从 post() 函数中删除 alert 时,它不会发布到 a.php,当我在 post() 函数中使用 return false 时,该函数在 a.php 上运行,但页面卡住,我无法运行从b.php获取数据!

最佳答案

当您删除警报时,ajax 将异步触发,然后您的函数将立即向 onsubmit 事件返回任何内容,这将导致表单提交并在之前发生页面更改ajax 甚至完成了。

由于您要将值返回给 onsubmit 事件,因此您只需向函数添加 return false 即可。这将阻止默认操作(提交)并停止传播。

function post() {
...
...
return false
}

编辑:

如果您需要 ajax 在允许表单提交之前完成,那么您应该像上面一样返回 false,但向 ajax 添加一个成功处理程序以手动提交表单。

function post()
{
var cvs = $('#client-nbr').val();
var cs = $('#cs').val();
$.post('a.php',{postcvs:cvs,postch1:cs}, function(){
$('#formID')[0].submit();
});
}

关于javascript - $.post jQuery 仅当在 post 函数内发出警报时才起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36726515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com