onclick 打开子窗口并提交表单

Posted

技术标签:

【中文标题】onclick 打开子窗口并提交表单【英文标题】:onclick open child window & submit form 【发布时间】:2018-04-16 20:18:09 【问题描述】:

所以我有一个父子窗口 父窗口中有一些表单,我计划通过从 mysql 数据库检索的子窗口传递的值来填充表单 但是,每次点击打开子窗口的按钮都会触发 2 个事件

首先,它打开子窗口 其次,它在父窗口中提交表单

我的问题是为什么会发生第二个事件?我还没有在 onclick 事件中添加任何代码来提交表单(在父窗口上)

这是我在父窗口中的代码:

<script language="javascript"> 
  function openWindow()  
    window.open("blabla.php","_blank","height=600,width=400, status=yes,toolbar=no,menubar=no,location=no"); 
  
</script>
<div class="form-group">
  <label>ID USER</label>
  <div class="input-group">
    <span class="input-group-addon"><span class="glyphicon glyphicon-pencil"></span></span>
    <input type="text" readonly class="form-control" id='idk' name='idk' placeholder="Submit ID User" required="required" />
    <span class="input-group-addon"><button onClick="javascript:openWindow();">Select</button></span>
  </div>
</div>

【问题讨论】:

【参考方案1】:

如果没有更多信息,我无法回答您的问题。您需要了解在调用 click 函数时触发了哪些事件,以便将事件传递给您的函数。然后您可以查看事件对象并确定是什么导致您的第二个事件被触发。为此,请将事件对象传递到您的函数中,然后您可以对其进行检查。

<script language="javascript"> 
  function openWindow(e) 
    console.log(e);
    window.open("blabla.php","_blank","height=600,width=400, 
    status=yes,toolbar=no,menubar=no,location=no"); 
  
</script>
<div class="form-group">
  <label>ID USER</label>
  <div class="input-group">
    <span class="input-group-addon"><span class="glyphicon glyphicon-pencil"></span></span>
    <input type="text" readonly class="form-control" id='idk' name='idk' placeholder="Submit ID User" required="required" />
    <span class="input-group-addon"><button onClick="javascript:openWindow(event);">Select</button></span>
  </div>
</div>

根据您提供的有限信息,我不确切知道您想要完成什么,所以这是我能为您提供的最好的帮助。如果您正在使用引导程序并且我看到您正在使用一些引导程序类。 Bootstrap 可能会在点击时提交您的表单。使用 e.preventDefault() 可能会阻止这种行为。

【讨论】:

我可以提供哪些其他信息来使我的问题更清楚?

以上是关于onclick 打开子窗口并提交表单的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - 表单选择元素在新窗口中打开 url 并提交表单

SHOWMODALDIALOG表单提交时禁止打开新窗口

在 Symfony 中提交表单后如何关闭窗口选项卡?

表单提交打开新选项卡/窗口? [复制]

为啥表单提交会打开新窗口/标签?

更改隐藏值并使用 onclick for href 提交表单