解答
http://www.iteye.com/problems/95288#s_200578的问题
以下是之前做过的,直接搬过来给你,你看看能不能去里面借鉴一下。下面的文件命名也是之前原班的
注意修改点:
1.本例中的“选择”按钮等同于你表单中的“增加”按钮
2.本例中在弹出页面勾选好了,点击“确定”按钮后,只将品名带出来了,而你的需求应该是把所有的都带出来吧,所以如果你想将其他字段的值也带出来你就在purchase.js中添加
3.本例不是很全,有可能不太看得懂,可以结合之前跟你说的图片看
[url]http://liangjie5305579-126-com.iteye.com/picture/125721 [/url]
1.PurchaseEdit.jsp(表单主页面)
注意:此处需要将purchase.js导入,并设置一个隐藏域selectgoods来接收你到时候所选物品id(第一二行)
<script type="text/javascript" src="../../js/purchase.js"></script>
<s:hidden id="selectgoods" name="selectgoods" />
<tr>
<TD width="100%" colspan="4" align="left"
class="biaodan_ziduan_center">
<strong>物品清单</strong><input type="hidden" name="index" id="index1" />
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="table11">
<tr align="center">
<td width="17%">
品 名
</td>
<td width="16%">
需求数量
</td>
<td width="16%">
实购数量
</td>
<td width="16%">
金 额
</td>
<td width="16%">
单 价
</td>
<s:if test='allPermission.indexOf("idselect")>0'>
<td>
<jtag:jbutton id="idselect" value="选择" editCondition="%{allPermission}" onclick="PurchaseGoodsSelect(table11)"
cssClass="btn18 pbtn1" />
</td>
</s:if>
</tr>
<s:iterator value="b_v_flow_purchase_goods_list" id="b_v_flow_purchase_goods_list" status="index">
<tr>
<td align="center" class="Tdcellright">
<s:property value="%{b_v_flow_purchase_goods_list[#index.index].goodName}"/>
<s:hidden id="goodid" name="%{'b_v_flow_purchase_goods_list['+#index.index+'].goodId'}"/>
<s:hidden id="pgId" name="%{'b_v_flow_purchase_goods_list['+#index.index+'].pgId'}"/>
</td>
<td align="center" class="Tdcellright">
<s:if test='flag==0'>
<s:textfield name="%{'b_v_flow_purchase_goods_list['+#index.index+'].demandNum'}" theme="simple"
cssStyle="width:80%" cssClass="validate[required,onlyDouble]" id="demandNum%{#index.index}" />
</s:if>
<s:else>
<s:property value="%{b_v_flow_purchase_goods_list[#index.index].demandNum}"/>
</s:else>
<s:property value="%{b_v_flow_purchase_goods_list[#index.index].measurement}"/>
</td>
<td align="center" class="Tdcellright">
<s:if test='flag==1'>
<s:textfield name="%{'b_v_flow_purchase_goods_list['+#index.index+'].realNum'}" id="realNum%{#index.index}"
theme="simple" cssStyle="width:80%" cssClass="validate[required,onlyDouble]" onkeyup="getprice(%{#index.index})"/>
</s:if>
<s:else>
<s:property value="%{b_v_flow_purchase_goods_list[#index.index].realNum}"/>
</s:else>
<s:property value="%{b_v_flow_purchase_goods_list[#index.index].measurement}"/>
</td>
<td align="center" class="Tdcellright">
<s:if test='flag==1'>
<s:textfield name="%{'b_v_flow_purchase_goods_list['+#index.index+'].amount'}" id="amount%{#index.index}"
theme="simple" cssStyle="width:80%" cssClass="validate[required,onlyDouble]" onkeyup="getprice(%{#index.index})"/>
</s:if>
<s:else>
¥<s:property value="%{b_v_flow_purchase_goods_list[#index.index].amount}"/>
</s:else>
</td>
<td align="center" class="Tdcellright">
<span id="price<s:property value="#index.index"/>"> ¥<s:property value="%{b_v_flow_purchase_goods_list[#index.index].goodPrice}"/> </span>
</td>
<s:if test='allPermission.indexOf("idselect")>0'>
<td align="center" class="Tdcellright">
<s:if test='flag!=2'>
<input type="button" name="Return" value="删除" class="btn2 pbtn1" onClick="deleteResumeData(this,'table11','<s:property value="%{b_v_flow_purchase_goods_list[#index.index].pgId}"/>');" >
</s:if>
</td>
</s:if>
</tr>
</s:iterator>
</table>
</TD>
</tr>
2.purchase.js
function PurchaseGoodsSelect(tableId) {
//window.open("PurchaseGoodsSelectLoad.action");
var result = window.showModalDialog("PuerchaseGoodsSelect.jsp",window,
"dialogWidth:700px;dialogHeight:650px;scroll:yes;status:yes");
if (result == 1) {
var goods = document.getElementById("selectgoods").value;
// alert(goods);
if (goods != "") {
var goodlist = goods.split(',');
var goodinfo = "";
for ( var i = 0; i < goodlist.length; i++) {
// alert(goodlist[i]);
if (goodlist[i] != "") {
goodinfo = goodlist[i].split('@');
addResumeRowLast(goodinfo[0], goodinfo[1],goodinfo[2], tableId)
}
}
}
// addResumeRowLast(tableId);
}
}
function addResumeRowLast( goodid,goodsname,measurement, tableId) {
var initTR = document.getElementById("table11").getElementsByTagName("tr");
var posrow = initTR.length;
addResumeRow(goodid,goodsname, measurement, tableId, posrow);
}
function addResumeRow( goodid,goodsname,measurement, tableId, rowindex) {// 物品
// alert(goodid);
var index = document.getElementById("index1");
var flag=document.getElementById("flag").value;
var newRow = tableId.insertRow(rowindex);
var TR = document.getElementById("table11").getElementsByTagName("tr");
newRow.align = "center";
var newCell = newRow.insertCell();
newCell.innerHTML = goodsname
+ '<input type="hidden" name="b_v_flow_purchase_goods_list['
+ index.value + '].goodId" value="' + goodid + '">';
var newCell = newRow.insertCell();
if(flag=="1"){
newCell.innerHTML =' ';
}else{
newCell.innerHTML = '<input type="text" id="demandNum'+index.value+'" name="b_v_flow_purchase_goods_list[' + index.value + '].demandNum" '
+'style="width:80%" class="validate[required,onlyDouble]">'+measurement;
}
var newCell = newRow.insertCell();
if(flag=="1"){
newCell.innerHTML = '<input type="text" name="b_v_flow_purchase_goods_list[' + index.value + '].realNum" style="width:80%" class="validate[required,onlyDouble]" onkeyup="getprice('
+ index.value + ')" id="realNum'+index.value+'">'+measurement;
}else{
newCell.innerHTML =' ';
}
var newCell = newRow.insertCell();
if(flag=="1"){
newCell.innerHTML = '<input type="text" id="amount'+index.value+'" name="b_v_flow_purchase_goods_list[' + index.value + '].amount" '
+' style="width:80%" class="validate[required,onlyDouble]" onkeyup="getprice('
+ index.value + ')">';
}else{
newCell.innerHTML =' ';
}
var newCell = newRow.insertCell();
newCell.innerHTML = '<span id="price' + index.value + '"> </span>';
var newCell = newRow.insertCell();
newCell.innerHTML = '<input type="button" name="Return" class="btn2 pbtn1" value="删除" onClick="deleteRows(\'index\',this,\'table11\');" ><input type="hidden" name="b_v_flow_purchase_goods_list[' + index.value + '].pgId" > '
// if(rowindex>1)
// {
// TR[rowindex].getElementsByTagName("input")[0].value=TR[rowindex-1].getElementsByTagName("input")[1].value;
// }
index.value++;
}
function getprice(index) {
//alert(index);
var span = "price";
var countstring = "realNum";
var amountstring = "amount";
var count = document.getElementById(countstring + index).value;
//alert(count);
var amount = document.getElementById(amountstring + index).value;
var price = 0;
if(IsNullToFloat(count)!=false){
price = IsNullToFloat(amount)/IsNullToFloat(count);
document.getElementById(span + index).innerHTML =' ¥' +toDecimal2(price);
}
}
function IsNullToInt(obj) {
var re = 0;
if (obj == null || obj == "" || isNaN(obj)||obj==0||obj=="0")
return false;
else {
re = parseInt(obj);
}
return re;
}
function IsNullToFloat(obj) {
var re = 0;
if (obj == null || obj == "" || isNaN(obj))
return false;
else {
re = parseFloat(obj);
}
return re;
}
//制保留2位小数,如:2,会在2后面补上00.即2.00
function toDecimal2(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return false;
}
var f = Math.round(x * 100) / 100;
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + 2) {
s += '0';
}
return s;
}
function deleteResumeData(src, o, ID) {// 删除申购单物品信息
if (confirm('确定要删除数据吗?')) {
deleteRows('index', src, o);
var url = 'DeletePurchaseGoodsById.action';
var params = {
checkedIds : ID
};
jQuery.post(url, params, callbackdelFun, 'json');
}
}
function callbackdelFun(data) {
alert("物品删除成功!");
}
// 删除行
function deleteRows(obj, src, o) {
var index = document.getElementById(obj);
var oRow = src.parentElement.parentElement;
document.getElementById(o).deleteRow(oRow.rowIndex);
}
3.PuerchaseGoodsSelect.jsp(弹出来选择物品的页面)
此处把点击“确定”时的js代码复制出来
function updateData() {
//此处三行代码表示获取已勾选的数据的id,再将id赋给selectgoods,也就是刚才页面的隐藏域的那个,此处你自己需改
var deleteFlags="deleteFlag";
var childFrame=document.getElementById('List').contentWindow;
var checkBoxList = childFrame.document.getElementsByName(deleteFlags);
var checkIds="";
for (var i=0;i<checkBoxList.length;i++){
if (checkBoxList[i].checked){
if(i==0)
{
checkIds = checkBoxList[i].value + ",";
}
else
{
checkIds = checkIds + "," + checkBoxList[i].value;
}
}
}
var ParentForm = window.dialogArguments.document.getElementById("selectgoods");
//alert(checkIds);
ParentForm.value=checkIds;
window.returnValue=1;
onReturn();
}
- 大小: 7.8 KB
- 大小: 16.5 KB
- 大小: 17 KB
分享到:
相关推荐
防止"表单重复提交"是Web开发中的一个重要问题,因为它可能导致数据的不一致。一种常见的解决方案是在服务器端维护一个令牌(token)系统。当用户提交表单时,服务器会生成一个唯一的令牌并将其存储在服务器的会话...
### MyEclipse 连接 SQL Server 2008 的详细步骤及注意事项 ...以上步骤涵盖了从设置 SQL Server 权限、引入 JDBC 驱动、创建数据源到编写 Java 代码的全过程,希望能帮助遇到相同问题的开发者们顺利解决问题。
- 在项目的 `WebRoot` 文件夹下创建一个新的 JSP 文件,例如 `MyJsp.jsp`,并在文件中输入文本 “This is my first web page!”。 - 选择已创建的项目 `LxxFirstWeb`,通过右键菜单选择 `Add Deployment`,将项目...
在用户管理部分,创建一个名为`domain`的用户,电子邮件地址与`xmpp.domain`的值相同,密码可自定义,管理员身份不需勾选。 在小京东后台,即时通信的聊天服务器设置需要输入正确的IP地址、端口号、HTTP-BIND端口号...
下例将在硬盘上添加一个 20 MB 的分区: diskpart /add Device HardDisk0 20 Fixboot 向系统分区写入新的分区引导扇区。只有在使用故障恢复控制台时,才能使用 fixboot 命令。 fixboot [drive] ...
### PC安装Android模拟器完全指南教程 #### 一、在电脑上安装Android模拟器 ...通过这一系列步骤,用户可以在电脑上体验Android系统及应用程序,对于开发者而言,这也是一个非常有用的测试工具。
继续进行,由于我们要创建一个Web应用项目,因此在项目类型选择中勾选“Web Application”。不选择任何选项则会创建一个基础的项目工程。完成这些设置后,IntelliJ IDEA会自动生成一个Web项目的结构。 接下来,让...
- 说明:同样地,虽然建议使用最新版本的Eclipse,但本指南中使用的版本是Eclipse IDE for Java EE Developers (大小约为189MB),这是页面上推荐的第一个版本。 3. **Android SDK**: - 下载地址:...
因此无论你是新手还是老手,该程序包都是一个不错的选择。 1、全面适合 Win2000/XP/2003/win7/win8/win2008 操作系统 ,支持Apache、IIS、Nginx和LightTPD。 2、该程序包集成以下软件,括号内为phpstudy下对应的目录...
Java applet是一种基于Java的小型应用程序,常用于网页中提供交互式功能,如实时报价、动态图表等。然而,如果您的操作系统较旧,比如Windows 98,可能与Java功能不兼容,导致无法正常显示这些内容。为了确保能够...
#### 一、在电脑上安装Android模拟器 ##### 1. 安装Java环境 由于Android模拟器依赖于Java环境,因此首先需要安装Java。如果您的计算机尚未安装Java,请访问以下链接下载适用于Windows的Java开发工具包(JDK): - ...
#### 一、安装Android模拟器 ##### 1. 安装Java环境 - **必要性**:Android模拟器依赖于Java环境。 - **下载地址**:[http://java.sun.com/javase/downloads/widget/jdk6.jsp]...
对于打开JSP文件时同时出现预览的问题,可以通过调整默认编辑器来解决。在`Windows` -> `Preferences` -> `General` -> `Editors` -> `File Associations`中,将JSP文件的默认编辑器设置为`MyEclipse JSP Editor`。 ...
- **预览功能**: 对于没有Android实体设备的用户而言,模拟器能够提供一个虚拟的测试平台,让用户提前体验Android系统的各项功能。 - **应用开发**: 开发者可以通过模拟器测试应用程序的功能和性能,确保应用在...
这些配置不仅影响到开发效率,还直接影响到代码的正确性,尤其是涉及到多语言支持时。 首先,关于字符编码的配置,确保项目中的所有文件采用UTF-8编码至关重要,因为UTF-8能够支持全球多种语言,避免乱码问题。在...
Eclipse作为一个流行的Java集成开发环境(IDE),提供了丰富的代码折叠功能,使得开发者能更好地组织和管理源代码。在本篇文章中,我们将深入探讨Eclipse中的代码折叠功能及其设置方法。 首先,Eclipse的代码折叠...