【问题标题】:Onclick to do show/hide activates submit button in formOnclick to do show/hide 激活表单中的提交按钮
【发布时间】:2021-06-01 09:38:49
【问题描述】:

我有一个用于预订一日游人员的表格,效果很好。每个预订都是表格中的一行。我现在需要将旅行的付款添加到每个预订中。这会使每个预订的行太长,因此我将付款添加为每个预订下方的额外行,但在父行中使用按钮隐藏该行以显示和隐藏付款。这一切都有效,除了每次我点击父行中的显示/隐藏按钮时,表单提交就像我点击了表单底部的保存提交按钮一样。由于保存报告会生成一个新选项卡,因此我可以返回原始表单并查看显示/隐藏是否正常。

任何关于为什么显示/隐藏按钮应该在原始表单标签中启动操作语句的想法都将不胜感激。整个脚本很庞大,所以我刚刚展示了表单标签和我为显示/隐藏添加的额外代码。 $i 是表中的行号。 $background 正在设置行的背景颜色。

我以其他形式显示/隐藏没有任何问题,但这是我第一次在表格中使用它。我已经在这个论坛中使用了几篇帖子来让显示/隐藏在表格行中正常工作,但到目前为止还没有找到任何东西来解决这个问题。

    <form method="post" action="visit_management.php?mode=book" target="_blank">
      ...
      <td><button id="button_'.$i.'" onclick="showpayment_'.$i.'()">Show payments</button></td>
      ...
      <script type="text/javascript">
      <!--
        function showpayment_'.$i.'() 
        {
          var x = document.getElementById("payment_'.$i.'");
          var y = document.getElementById("button_'.$i.'");
          if (x.style.display === "none") 
          {
            x.style.display = "table-row";
            y.innerHTML = "Hide payments";
          } 
          else 
          {
            x.style.display = "none";
            y.innerHTML = "Show payments";
          }
        }
      -->       
      </script>
      ...
      <tr id="payment_'.$i.'" style="display:none; '.$background.'">
      ...  Payment data
      </tr>
      ...
      <p><input type="submit" style="padding-top:5px" value="Save" class="formsubmit"></p>
    </form>

【问题讨论】:

    标签: javascript html onclick submit


    【解决方案1】:

    &lt;form&gt; 中的&lt;button&gt; 的默认行为是提交表单。

    所以你可以将你的 &lt;button&gt; 更改为 &lt;div class="button"&gt; 并将一些 css 添加到 .button

    或者你可以将事件传递给函数onclick="showpayment_'.$i.'(event),然后调用preventDefault();喜欢:

      function showpayment_'.$i.'(event) {
        event.preventDefault();
        var x = document.getElementById("payment_'.$i.'");
        var y = document.getElementById("button_'.$i.'");
        ...
    

    【讨论】:

    • 谢谢。我没有意识到它被“链接”到一个表单。我现在可以处理这个问题了。我已经有了在其他地方使用的按钮类,只是想这次我会使用&lt;button&gt;,因为它看起来更整洁,我仍然对按钮类的呈现不满意。显然&lt;button&gt;有它的限制。
    • 我刚刚记得我认为我在某处读到过您不应该在表格中使用&lt;div&gt;,尽管我只是作为快速实验完成了它,并且它似乎有效。跨度>
    猜你喜欢
    • 2021-08-10
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多