gpt4 book ai didi

javascript - Safari中ajax成功后如何提交表单

转载 作者:行者123 更新时间:2023-11-28 05:32:52 25 4
gpt4 key购买 nike

我有一个带有提交按钮的表单。我把 onclick="foo(event, this);"在提交按钮中进行提交。

我想在ajax成功后提交表单。

这是我的代码:

<form id="form_a" action="destination.html">

<input type="submit" id="submit_button_1" value="Submit button 1" onclick="foo(event, this);">

</form>

<script type="text/javascript">

function foo(event, this_element)
{
event = event || window.event;
event_target = event.target || event.srcElement;

//Prevent the immediate submission because I want submit after ajax success :
event.preventDefault();

//Retrieve the submit button clicked :
if(this_element.id == "submit_button_1")
{
//Submit the form afer ajax success :

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
//Retrieve the form object to submit :
form_a = document.getElementById("form_a");

//Submit the form 3000 ms later :
setTimeout('form_a.submit();', 3000);
}
}

//Send ajax request on server :
xhr.open("POST", "server.php", false);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send("");
}
}

</script>

此代码在 Safari 中不起作用。那么在 safari 中 ajax 成功后如何提交表单?

最佳答案

您正在尝试执行一个字符串。变量 form_ 在执行时可能不可用。

您的setTimeout应该像这样,以便通过closure访问form_a变量。

setTimeout(function() {
form_a.submit();
}, 3000);

关于javascript - Safari中ajax成功后如何提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39560611/

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