Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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:自动提交表单post数据,不重定向或刷新页面_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript:自动提交表单post数据,不重定向或刷新页面

Javascript:自动提交表单post数据,不重定向或刷新页面,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我需要能够自动提交表单后的数据,而不是像在我目前的代码页面重定向。我在这个主题上遇到的一切都涉及jquery和ajax。我就是不能用他们的例子得到一个有效的版本 以下是我当前的工作页面,可重定向: <!DOCTYPE html> <html> <head> <title>Does it work?</title> </head>` <body> <form name="actionBalance" m

我需要能够自动提交表单后的数据,而不是像在我目前的代码页面重定向。我在这个主题上遇到的一切都涉及jquery和ajax。我就是不能用他们的例子得到一个有效的版本

以下是我当前的工作页面,可重定向:

<!DOCTYPE html>

<html>

<head>
<title>Does it work?</title>
</head>`

<body>
<form name="actionBalance" method="post" action="action.php">
        <input type="hidden" name="name" value="value2">
        <input type="hidden" name="name2" value="value2">
        <input type="hidden" name="name3" value="value3">
</form>
</body>


<script>document.actionBalance.submit()</script>

</html>

试试这个,它应该可以工作:

<!DOCTYPE html>
<html>
<head> 
    <title>Does it work?</title> 
</head>
<body onload="document.createElement('form').submit.call(document.getElementById('actionBalance'))"> 
    <form id="actionBalance" name="actionBalance" method="POST" action="action.php">  
        <input type="hidden" name="name1" id="name1" value="value1" />  
        <input type="hidden" name="name2" id="name2" value="value2" />  
        <input type="hidden" name="name3" id="name3" value="value3" />

        <input type=hidden name="submit" id="submit" value="Continue"/> 
    </form> 
</body>
</html>

另一个选项是放置一个iframe,因此当页面加载时,iframe用您在问题中输入的javascript加载您的有效负载,表单将被提交。

您需要用表单数据调用jquery post方法,如下所示

$(document).ready(function() {
   $.post( "action.php", $('form[name=actionBalance]').serialize() );
});

我认为您正在寻找提交后立即重定向的解决方案:

<!DOCTYPE html>
<html>
<head>
<title>Does it work?</title>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script>
        $(document).ready(function(){
           $('form').submit(); 
        });
</script>
</head>
<body>
<form name="actionBalance" method="post" action="action.php">
        <input type="hidden" name="name" value="value2">
        <input type="hidden" name="name2" value="value2">
        <input type="hidden" name="name3" value="value3">
</form>
</body>
</html>
尝试用此替换整个脚本,并让我知道这是否是您想要的:-

编辑:如果您只需要这段脚本,那么jquery可能是一个过分的工具,因为它是一个巨大的库。下面是纯javascript:

<!DOCTYPE html>
<html>
<head>
<title>Does it work?</title>
</head>
<body>
<form name="actionBalance" method="post" action="action.php">
        <input type="hidden" name="name" value="value2">
        <input type="hidden" name="name2" value="value2">
        <input type="hidden" name="name3" value="value3">
</form>
<script type="text/javascript">
        var form = document.getElementsByName('actionBalance')[0];
        form.submit();
</script>
</body>
</html>

在没有AJAX的情况下,如果不重新加载/提交页面,就无法做到这一点。是的,唯一不重新加载页面的方法是使用JavaScript AJAX请求。你试过了吗?AJAX就是为了这个目的而创建的。使用它。
<!DOCTYPE html>
<html>
<head>
<title>Does it work?</title>
</head>
<body>
<form name="actionBalance" method="post" action="action.php">
        <input type="hidden" name="name" value="value2">
        <input type="hidden" name="name2" value="value2">
        <input type="hidden" name="name3" value="value3">
</form>
<script type="text/javascript">
        var form = document.getElementsByName('actionBalance')[0];
        form.submit();
</script>
</body>
</html>