思路:使用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中添加弹窗口并且实现向后台双向传递数据的更多相关文章

  1. JSP中添加弹出框

    JSP中添加弹出框 %> <script language="javascript" type="text/javascript"> aler ...

  2. 探究Spring Boot中的接收参数问题与客户端发送请求传递数据

    结合此篇参考Spring框架学习笔记(9)--API接口设计相关知识及具体编码实现 在使用Spring Boot进行接收参数的时候,发现了许多问题,之前一直都很忙,最近才稍微有空研究一下此问题. 网上 ...

  3. jsp中添加过滤器,实现校验用户身份

    我现在需要实现一个功能,就是用户登录前不允许访问系统,我使用的是jsp的过滤器来实现的. 先把filter过滤器的代码粘出来: package com.day8.filter; import java ...

  4. 【转载】在C#中主线程和子线程如何实现互相传递数据

    引用:https://blog.csdn.net/shuaihj/article/details/41316731 一.不带参数创建Thread using System; using System. ...

  5. JSP中使用JDBC连接MySQL数据库的详细步骤

    1,首先在自己新建的项目文本框中输入Web Project的名称,然后单击下一步. 2,继续单击下一步 3,把Generate web.xml deployment descriptor复选框勾上. ...

  6. JSP中的内置对象和Struts中的Web资源的详解

    JSP中的内置对象有如下几种: request :继承于HttpServletRequest, HttpServletRequest继承ServletRequest, 获得的Request对象的方法: ...

  7. JSP中页面向Action传递参数的几种方式

    <form name="ThisForm" method="POST" action="index.jsp"> form是表单, ...

  8. 对类HelloWorld程序中添加一个MessageBox弹窗

    对类HelloWorld程序中添加一个MessageBox弹窗 分析: 任一程序运行的时候都会加载kernel32.dll的,但MessageBoxA()这个API却是在user32.dll中的.所以 ...

  9. jsp实现仿QQ空间新建多个相册名称,向相册中添加照片

    工具:Eclipse,Oracle,smartupload.jar:语言:jsp,Java:数据存储:Oracle. 实现功能介绍: 主要是新建相册,可以建多个相册,在相册中添加多张照片,删除照片,删 ...

随机推荐

  1. NodeJS初学者实战之旅(I) —— 介绍、目录

    旅行之初 作为一个工作了两年多后端开发人员,未接触过NodeJS,对它的认知也仅仅停留在“可以使用JavaScript代码编写服务端程序”上.最近空闲时间 较多,便想来啃它一啃.但是没有一个实际的玩意 ...

  2. 如何查找ORACLE中的跟踪文件

    一.跟踪文件是干什么用的?        跟踪文件中包含了大量而详细的诊断和调试信息.通过对跟踪文件的解读和分析,我们可以定位问题.分析问题和解决问题.从跟踪文件的产生的来源来看,跟踪文件又可以分为两 ...

  3. Android的动画

    一.动画类型 Android的animation由四种类型组成:alpha.scale.translate.rotate XML配置文件中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画 ...

  4. 前端-mate讲解

    <meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词. <meta> 标签位于文档的头部,不包含任何内容. & ...

  5. python成长之路第三篇(2)_正则表达式

    打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.什么是正则表达式,python中得正则简介 2.re模块的内容 3.小练习 一.什么是正则表达式(re) 正则表 ...

  6. python操作csv-xls完善后的代码

    #coding:utf-8 #导入相应模块 import csv,xlwt,sys,os,fnmatch,xlrd from xlutils.copy import copy #对xls文件中的绝对值 ...

  7. 烧饼(nyoj779)

    描述烧饼有两面,要做好一个兰州烧饼,要两面都弄热.当然,一次只能弄一个的话,效率就太低了.有这么一个大平底锅,一次可以同时放入k个兰州烧饼,一分钟能做好一面.而现在有n个兰州烧饼,至少需要多少分钟才能 ...

  8. 浅析 JavaScript 的函数节流和去抖

    现代网页的实现上,会有很多交互上的优化,比如常见的 滚动加载 ,输入联想 等等.他们的实现思路很简单,以滚动加载而言,无非就是去是增加一个滚动的事件监听,每次滚动判断当前的元素是否已经滚动到了用户的可 ...

  9. MVC 视频笔记

    1.关闭Jquery的浏览器缓存 $.ajaxSetup({cache:fasle});

  10. 打开本地STL文件并创建webgl使用的geometry

    需求 打开本地STL文件 一个独立基于webgl的viewer,会被别的网站重用 将打开文件的数据传输给viewer,并且在文件加载的时候显示进度条 解决方案 #1可以使用传统的html5 api来打 ...