如何在页面加载时提交HTML表单?

8
如何在没有使用提交按钮的情况下提交此表单。我希望在加载此表单时提交它。
<form name="frm1" id="frm1" action="../somePage" method="post">
    Please Waite...
    <input type="hidden" name="uname" id="uname" value="<?php echo $uname;?>" />
    <input type="hidden" name="price" id="price" value="<?php echo $price;?>" />
</form>

你想在页面加载时立即提交表单?那有什么意义呢? - Matt Ball
2
例如,它允许使用表单收集私人客户数据,检查其正确性以及所需内容是否可用(因为一个人访问页面和点击“购买”按钮之间可能会有很长时间),提供包含PayPal特定数据的表单,立即提交(在他们再次延迟之前)向他们显示PayPal的付款批准页面,否则返回原始页面并显示不正确或缺货的内容。@MattBall - Patanjali
6个回答

50

这里不需要使用Jquery! 最简单的解决方案是(基于charles的答案):

<html>
<body onload="document.frm1.submit()">
   <form action="http://www.google.com" name="frm1">
      <input type="hidden" name="q" value="Hello world" />
   </form>
</body>
</html>

9
您可以尝试使用以下脚本。
<html>
<head>
<script>
function load()
{
document.frm1.submit()
}
</script>
</head>

<body onload="load()">
<form action="http://www.google.com" id="frm1" name="frm1">
<input type="text" value="" />
</form>
</body>
</html> 

6
做这个:
$(document).ready(function(){
     $("#frm1").submit();
});

1
这种方式仅适用于JQuery使用。 - RlDDlCK

5
您可以使用简单的一行JavaScript代码来实现,但要注意如果JavaScript被关闭,则无法正常工作。如果JavaScript被关闭,下面的代码将会起作用。
关闭JavaScript并在自己的文件上运行代码以了解其完整功能。(如果您在此处关闭JavaScript,则下面的代码片段将无法正常工作)

.noscript-error {
  color: red;
}
<body onload="document.getElementById('payment-form').submit();">

  <div align="center">
    <h1>
      Please Waite... You Will be Redirected Shortly<br/>
      Don't Refresh or Press Back 
    </h1>
  </div>

  <form method='post' action='acction.php' id='payment-form'>
    <input type='hidden' name='field-name' value='field-value'>
     <input type='hidden' name='field-name2' value='field-value2'>
    <noscript>
      <div align="center" class="noscript-error">Sorry, your browser does not support JavaScript!.
        <br>Kindly submit it manually
        <input type='submit' value='Submit Now' />
      </div>
    </noscript>
  </form>

</body>


我需要你的帮助,与此相关。你能帮我吗? - robins
当然,我会帮助你。 - Shankar Prakash G
我使用以下代码获取了一个值:var stud_pay_mode= $(this).find('input.stuPaymode').val(); - robins
1
请尝试使用以下代码:$('option[value="'+stud_pay_mode+'"]').prop('selected', true); - Shankar Prakash G
我的下拉菜单中有任何ID吗? - robins
1
您不需要为选项指定ID,可以直接使用值进行选择。这里是一个示例 https://jsfiddle.net/fff02pde/3/ ,请查看并确认您正在寻找类似的内容。如果您需要更具体的解决方案,请展示您的代码。 - Shankar Prakash G

4

使用JavaScript

 <form id="frm1" action="file.php"></form>
    <script>document.getElementById('frm1').submit();</script>

3
你错过了输入字段的闭合标签,你可以选择任何一个事件,例如:onload、onclick等。
(a)Onload事件:
<script type="text/javascript">
$(document).ready(function(){
     $('#frm1').submit();
});
</script>

(b) 单击事件:

<form name="frm1" id="frm1" action="../somePage" method="post">
    Please Waite... 
    <input type="hidden" name="uname" id="uname" value=<?php echo $uname;?> />
    <input type="hidden" name="price" id="price" value=<?php echo $price;?> />
    <input type="text" name="submit" id="submit" value="submit">
</form>
<script type="text/javascript">
$('#submit').click(function(){
     $('#frm1').submit();
});
</script>

在HTML中,input和其他一些标签的结束标记或快捷方式是不必要的。 - Patanjali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接