【问题标题】:How pass data to popup window which created used div如何将数据传递到创建使用过的 div 的弹出窗口
【发布时间】:2016-05-03 10:39:19
【问题描述】:

我的页面中有包含产品名称和价格的表格。附近只有一行有一个按钮“下订单”。当我单击它时,我会弹出一个窗口。我必须将我的姓名和价格传递给这个弹出窗口。

<script type="text/javascript">
function show(state){
    document.getElementById('window').style.display = state;
    document.getElementById('wrap').style.display = state;
}
</script>

<div onclick="show('none')" id="wrap"></div>

<!-- Popup Window -->
<div id="window">
<img class="close" onclick="show('none')" src="/images/close.png">
<form   onsubmit="return checkForm(this)" action="/user/confirmOrder">
    <p>Address:</p>
    <input type="text" name="address">
    <p>Count:</p>
    <input type="text" id="count" name="count">
    <p id='err_count' class='error'></p>

    <input type="hidden" name="username" value="${pageContext.request.userPrincipal.name}">
    <br>
    NameProduct:
    <input type="text" id="nameProduct" name="nameProduct">
    <input type="text" id="priceProduct" name="priceProduct">
    <input type="submit" value="Make order">
</form>
</div>



<table border="2px">
<tr>
<th>Name</th>
<th>Price</th>
</tr>
<c:forEach items="${productList}" var="product" varStatus="status">
<tr>
    <td> ${product.getProductName()}</td>
    <input type="hidden" id="productName" name="productName"     value=${product.getProductName()}>
    <td>${product.getPrice()}</td>
    <input type="hidden" id="productPrice" name="productPrice" value=${product.getPrice()}>
    <td>
       <button class="myButton" onclick="show('block')">Make Order</button>
    </td>
</tr>

如何传递给我的弹出窗口名称和价格选择行?早期我使用window.open() 并且它有效,但现在我使用 div 来创建弹出窗口。

【问题讨论】:

  • 我点击我的按钮&lt;button class="myButton" onclick="show('block')"&gt;Make Order&lt;/button&gt;
  • 我的弹出窗口 id 是 &lt;div id="window"&gt;
  • 你现有的代码还有一个问题,你的 重复创建了多个具有相同 ID、“productName”和“productPrice”的隐藏字段,这会导致很多问题。每个元素的 ID 应该是唯一的。两个或多个元素永远不能有相同的 id。
  • 是的,但是有表格,每个按钮只有一行
  • 您可以采用任何一种方式,但 window.open() 会是一种更好的方式。还要记住,每个元素的 Id 应该是唯一的。两个或多个元素永远不能有相同的 id。

标签: javascript html css jsp popupwindow


【解决方案1】:

以这种方式创建弹出窗口

var childWindow=window.open("windowUrl");

然后您需要在子窗口中创建一个设置名称、价格和所选行的函数,然后在父窗口中以这种方式调用该函数。

childWindow.setterFunction(name,price,chosenRow);

或者,您可以在子窗口中为名称、价格和所选行创建全局变量(不推荐),然后像这样从父窗口设置它们

childWindow.Name =name;
childWindow.Price = price;
childWindow.chosenRow = chosenRow;

【讨论】:

  • 谢谢,我使用 window.open() 创建了弹出窗口,它起作用了。但是现在我使用 div 标签创建窗口,我现在如何传递数据?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-23
  • 2017-03-31
相关资源
最近更新 更多