使用连续循环中的javascript自动提交表单

submitting a form automatically using javascript stuck in a continuous loop

本文关键字:提交 表单 javascript 连续 循环      更新时间:2023-09-26

我只是想知道这段代码在哪里出了问题,它将95英镑添加到结帐中,但问题是它反复做它就像在循环中一样,我似乎不知道如何阻止它。

<body onLoad="submit1()">
<form method="post" action="" class="jcart" id="foo">
 <fieldset>
<input type="hidden" name="jcartToken" value="<?php echo $_SESSION['jcartToken'];?>" />
<input type="hidden" name="my-item-id" value="ABC-8" />
<input type="hidden" name="my-item-name" value="Level 1" />
<input type="hidden" name="my-item-price" value="95.00" />
<input type="hidden" name="my-item-url" value="" />
<table>
      <tr>
      <td width="65%">
    <strong>Level 1 all for £95</strong>
      </td>
      <td width="15%" align="right">
    £95.00
      </td>
  <td>
        <input type="text" hidden ="true" name="my-item-qty" value="1" size="3" hidden="true" />
  </td>
      <td width="20%" align="center">
    <input type="submit" name="my-add-button" id="my-add-button" value="add" class="button" /> 
  </td>
  </tr>
     </table>       
</fieldset>
  </form>
<script type="text/javascript">
function submit1() {    
    // It seems that its this causing the problem 
    document.getElementById("my-add-button").click()// Simulates button click
    document.foo.submit() // Submits the form without the button
} 
</script>
</body>

因为您在body onload中调用了submit1(),它在每次加载页面时都会执行。由于这个函数提交的表单会再次加载页面,因此它创建了一个循环。删除submit1()函数并尝试这个更简单的方法:

$("#my-add-button").click(function() {
    $("#foo").submit();
});

试试这个:

var o = 0;
function submit1() {
    if(o === 0){
      document.foo.submit() // Submits the form without the button
    }
    (o === 0) ? o++ : o = 0;
}