jsp中添加弹窗口并且实现向后台双向传递数据
思路:使用jquery-easyui框架实现弹出div,在jsp初始化时从后台获得数据初始化div中的form表单元素的value属性,从而获得后台数据。在点击确定按钮时使用ajax向后台发送数据。
步骤:
1、jsp页面引入如下文件
<link rel="stylesheet" type="text/css" href="<c:url value="/jquery-easyui-1.3.2/themes/gray/easyui.css"/>"/>
<link rel="stylesheet" type="text/css" href="<c:url value="/jquery-easyui-1.3.2/themes/icon.css"/>"/>
<script type="text/javascript" src="/jquery-easyui-1.3.2/jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="/jquery-easyui-1.3.2/jquery.easyui.min.js"></script>
<script type="text/javascript" src="/jquery-easyui-1.3.2/locale/easyui-lang-zh_CN.js" charset="utf-8"></script>
2、在create.jsp页面上添加弹出div
<div id="generateProductNum" modal='true' closed='true' class='easyui-dialog' style='width:340px;height:330px' title="产生代码">
<table>
<tr>
<td>当前值</td>
<td><s:textfield id="currentValue" theme="simple" value="%{#request.lgpAutoNum.currentValue}" cssStyle="width:150px" readonly="true"/></td>
</tr>
<tr>
<td>增量</td>
<td><s:textfield id="increase" theme="simple" value="%{#request.lgpAutoNum.increase}" cssStyle="width:150px"/></td>
</tr>
<tr>
<td>最大值</td>
<td><s:textfield id="max" theme="simple" value="%{#request.lgpAutoNum.max}" cssStyle="width:150px"/></td>
</tr>
<tr>
<td>种类</td>
<td><s:textfield id="category" theme="simple" value="%{#request.lgpAutoNum.category}" cssStyle="width:150px" readonly="true"/> </td>
</tr>
<tr>
<td>部门名称</td>
<td><s:select list="#request.departList" id="departId" name="departId" theme="simple" cssStyle="width:150px" listKey="deptCode" listValue="deptName" value="1"></s:select></td>
</tr>
<tr>
<td><input type="button" value="确定" onclick="confim()"/></td>
<td><input type="button" value="取消"/></td>
</tr>
</table>
</div>
其中 modal='true' closed=“true”属性设置div的初始状态为隐藏,在div中初始化表单元素的value值为后台的数据
3、点击文本框时触发弹出div的函数
<s:textfield id="productNum" name="productNum" value="%{model.productNum}" cssClass="required" theme="simple" cssStyle="width:150px" readonly="true" onclick="generateNum()"></s:textfield>
4、js函数如下
function generateNum(){
$j('#generateProductNum').dialog('open');
}
在框架中存在jquery和prototype的冲突,为解决冲突问题必须采用
var $j= jQuery.noConflict();
将$j符合作为jquery的标志符合。且var $j= jQuery.noConflict();必须紧跟<script>之后,即在在开始执行script的时候先执行冲突函数,这样后续的prototype中的冲突就可以解决。即应用于所有js代码
5、点击div的确定按钮后执行的方法(将用户自定义的代码产生格式赋值到form表单中对应的文本域中 ,同时关闭弹出的div)
function confim(){
var now=new Date();
var departCode=document.getElementById('departId').value.toUpperCase();
//var departCode=document.getElementById('departId').options[document.getElementById('departId').selectedIndex].text.toUpperCase();
var currentValue=document.getElementById('currentValue').value;
var increase=document.getElementById('increase').value;
var valueNum=parseInt(currentValue)+parseInt(increase);
if(valueNum/100<1){
if(valueNum/10<1){
valueNum="00"+valueNum;
}else{
valueNum="0"+valueNum;
}
}
var productNum=departCode+now.getFullYear()+valueNum;
document.getElementById('productNum').value=productNum;
$j('#generateProductNum').dialog('close');
}
6、当点击jsp页面上的提交按钮时将最终数据提交到后台,但是一定要同时修改代码产生规则表的数据使用ajax实现
function updateNum(){
var currentValue=document.getElementById('currentValue').value;
var increase=document.getElementById('increase').value;
var url="/product/LgpAutoNum_update.action?increase="+increase+"&_t="+new Date().getTime();
var myAjax=new Ajax.Request(
url,
{
method:'get',
setRequestHeader:{"If-Modified-Since":"0"},
setRequestHeader:{"Cache-Control":"no-cache"},
onComplete:afterNum
}
);
}
function afterNum(originalRequst){
var result=originalRequst.responseText;
if(result.length<0){
alert("编号不符合规范");
}
}
使用ajax时如果多次添加产品记录,就会多次修改代码生成规则表的记录,这就需要使用ajax重复提交到相同的url,由于ajax的异步性在浏览器中多次提交时只执行一次并获得response中数据,这样就会在产品中产生相同的产品代码。
jsp中添加弹窗口并且实现向后台双向传递数据的更多相关文章
- JSP中添加弹出框
JSP中添加弹出框 %> <script language="javascript" type="text/javascript"> aler ...
- 探究Spring Boot中的接收参数问题与客户端发送请求传递数据
结合此篇参考Spring框架学习笔记(9)--API接口设计相关知识及具体编码实现 在使用Spring Boot进行接收参数的时候,发现了许多问题,之前一直都很忙,最近才稍微有空研究一下此问题. 网上 ...
- jsp中添加过滤器,实现校验用户身份
我现在需要实现一个功能,就是用户登录前不允许访问系统,我使用的是jsp的过滤器来实现的. 先把filter过滤器的代码粘出来: package com.day8.filter; import java ...
- 【转载】在C#中主线程和子线程如何实现互相传递数据
引用:https://blog.csdn.net/shuaihj/article/details/41316731 一.不带参数创建Thread using System; using System. ...
- JSP中使用JDBC连接MySQL数据库的详细步骤
1,首先在自己新建的项目文本框中输入Web Project的名称,然后单击下一步. 2,继续单击下一步 3,把Generate web.xml deployment descriptor复选框勾上. ...
- JSP中的内置对象和Struts中的Web资源的详解
JSP中的内置对象有如下几种: request :继承于HttpServletRequest, HttpServletRequest继承ServletRequest, 获得的Request对象的方法: ...
- JSP中页面向Action传递参数的几种方式
<form name="ThisForm" method="POST" action="index.jsp"> form是表单, ...
- 对类HelloWorld程序中添加一个MessageBox弹窗
对类HelloWorld程序中添加一个MessageBox弹窗 分析: 任一程序运行的时候都会加载kernel32.dll的,但MessageBoxA()这个API却是在user32.dll中的.所以 ...
- jsp实现仿QQ空间新建多个相册名称,向相册中添加照片
工具:Eclipse,Oracle,smartupload.jar:语言:jsp,Java:数据存储:Oracle. 实现功能介绍: 主要是新建相册,可以建多个相册,在相册中添加多张照片,删除照片,删 ...
随机推荐
- JS中表格的全选和删除要注意的问题
在项目开发中,由于刚刚开始做项目,我对js还不是很精通,所以在用js对表格的全选和删除中遇到了不少问题,后来通过查找资料解决了,之后总结了一下关于js表格的全选和删除出现的一些问题,希望能帮助到大家. ...
- vs2010 中检测到有潜在危险的 Request.Form 值
解决方法 : 一般在网上搜只有以下两种处理方式: 1.在报错的页面前吧<%Page%>标签中增加validateRequest="false"的属性为false 如下所 ...
- Java 面向对象(转)
转自:http://blog.sina.com.cn/s/blog_83c5190f01010ate.html 1.我们可以把JAVA中的类分为以下三种: 类:使用class定义且不含有抽象方法的类. ...
- PDO扩展使用方法
pdo扩展为php访问数据库提供了一个轻量级的一致接口,pdo提供了一个数据访问抽象层,这意味着不管使用哪种数据库,都可以使用相同的函数来查询和获取数据. $dbms='mysql'; //数据库类型 ...
- HDU 1070 - Milk
给每种牛奶价格和量 要求买最便宜的牛奶 #include <iostream> using namespace std; int t,n; ][]; ],v[]; int main() { ...
- JavaScript总结之单击弹出div
今天也算用了不少手段来实现他们的要求,大概记录一下,下边的代码示例,我全部修改贴出来,争取全部占到自己的代码里就能用. 1.点击同一个div,打开/关闭另一个div. 1 <script typ ...
- 也谈谈关于WEB的感想
距离上次在博客园发表博文已经是数年以前了,想想自己也确实有够懒惰的,实为不该. 引起我想发这篇博文的原因是 @Charlie.Zheng 所发表的 <Web系统开发构架再思考-前后端的完全分离& ...
- eclipse优化配置
-startup plugins/org.eclipse.equinox.launcher_1..jar --launcher.library plugins/org.eclipse.equinox. ...
- Objextive-C几道小题目笔记
//掷骰子题,掷骰子100次,输出每个号出现的次数 void one() { for (int i=1; i<=100; i++) { int a = arc4random() % 6 +1; ...
- UI原则之-拼车
1.简洁------------一目了然,简洁明了 2.易用------------操作方便 3.直观.快速-------快速定位到所需信息 4.友好-------网络延时.超时.等待 5.易懂--- ...