【问题标题】:PHP form submitting when clicking any buttons单击任何按钮时提交PHP表单
【发布时间】:2022-01-25 18:56:51
【问题描述】:

目前正在设置一个表单以在支付系统中创建新订单,当我单击表单中的任何按钮时,表单会提交。有谁知道可能是什么问题? 这是有问题的代码:

     <form action="scripts/php/addorder.php" method="POST">
      <script src="scripts/javascript/cookies.js"></script>
      <script src="scripts/javascript/addproduct.js"></script>
      <label>Choose Customer: </label>
      <input type="text" value="" name="name" id="name" required readonly>
      <button onclick ="window.open('customertable.php','popup','width=600,height=600');">Choose</button>
      <br/>
      <div id="products">
          <label>Products: </label>
          <br/>
          ID: <input type="text" value=" " name="chosenproduct0" id="chosenproduct0" required readonly>
          Name: <input type="text" value=" " name="chosenproduct0name" id="chosenproduct0name" required readonly>
          Price: <input type="text" value=" " name="chosenproduct0price" id="chosenproduct0price" required readonly>
          Quantity: <input type="number" value="1" name="chosenproduct0quantity" id="chosenproduct0quantity" required>
          <button onclick ="findproduct('chosenproduct0');">Choose Product</button>
      </div>
      <br/>
      <label>Discount: </label>
      <input type="number" placeholder="0" name="discount" id="discount" step=".01" min="0">
      <label>Total: </label>
      <input type="number" value="0" name="total" id="total" readonly>
      <button onclick="addproduct()">Add Product</button>
      <br/>
      <input type="submit" id="submit" value="Create New Order" class="button"/>
      </form>

【问题讨论】:

标签: javascript php html


【解决方案1】:

&lt;button&gt; 的默认类型是 submit。显式将其设置为button,默认情况下不应提交表单:

<button type="button" onclick="addproduct()">Add Product</button>

【讨论】:

  • 点赞!这是第一个正确的答案。我不确定其他用户是如何因为基本上复制您的答案而获得 2 次赞成票的。
【解决方案2】:

默认情况下,单击按钮时会刷新页面/提交表单。您可以通过将属性 type="button" 添加到按钮来解决此问题。

&lt;button type="button" onclick="myFunction()"&gt;My button&lt;/button&gt;

【讨论】:

  • 点赞!您在通话中保留了正确的onclick
【解决方案3】:

防止在&lt;Form&gt;元素中使用&lt;button&gt;元素,

默认情况下,它的行为等同于&lt;input type="submit"&gt; 元素。

所以更喜欢这个

<input type="button" value="Add Product">

【讨论】:

  • 我不确定这与 David 或 dandemo 的答案是否有很大不同?此外,这不再调用addproduct()。您决定删除 js 事件处理程序是否有原因?
  • 没有任何理由,我已经将答案写成关于标准实践的一条建议(不是完整的解决方案),后来发现有人已经回答了这个问题跨度>
猜你喜欢
  • 1970-01-01
  • 2020-12-03
  • 2015-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 2022-01-07
相关资源
最近更新 更多