动态增删输入框和下拉列表框源代码------下拉列表值从数据库取得(Ajax)

 

 

 

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. < html >
  3. < head >
  4.      < title > 动态增删表格行 </ title >
  5.      < script   language = "JavaScript" >
  6. var  request  =  false ;
  7. var  rowIndex = 0 ;
  8. var  Strs = "" ;
  9. var  Values = "" ;
  10.   
  11.    function getCustomerInfo() {
  12.    
  13.      var  url  =  "/Ajax/scripts/lookupCustomer.jsp?" ;
  14.      request.open("GET", url, true);
  15.       request.onreadystatechange  =  updatePage ;
  16.      request.send(null);
  17.      }
  18. function updatePage() {
  19.      if ( request.readyState  == 4)
  20.        {if ( request.status  == 200)
  21.          {
  22.     
  23.           var  res1 = request .responseXML.getElementsByTagName("res")
  24.         var  subMenu1  =  "----请选择题型----" ;
  25.         
  26.         for(var  i  =  0 ; i  <   res1.length ; i++) {
  27.         
  28.              subMenu1 subMenu1  = subMenu1+ "," + res1[i].firstChild.data + "";
  29.         }
  30.         
  31.      StrssubMenu1 .split(",");
  32.     
  33.     var  res2 = request .responseXML.getElementsByTagName("val")
  34.         var  subMenu2"-1" ;
  35.         for(var  j0 ; j  <   res2.length ; j++) {
  36.             subMenu2 subMenu2  = subMenu2+ " , " + res2[j].firstChild.data + "";
  37.        }
  38.          Values  =  subMenu2 .split(",");
  39.          }
  40.        else if ( request.status  == 404)
  41.         { alert("Request URL does not exist");}
  42.          else if ( request.status  == 403) {
  43.          alert("Access denied.");
  44.        } 
  45.        else
  46.          alert("Error: status code is " + request.status);
  47.          }
  48.    }     
  49.     
  50. function AddOption(Values,Strs)
  51. {
  52. var i;
  53. var  MyOption = "" ;
  54. for ( i = 0 ;i < Values.length ;i++)
  55. {
  56. MyOption MyOption =MyOption+" < option   value = "+Values[i]+" > "+Strs[i]+" </ option > ";
  57. }
  58. return MyOption;
  59. }
  60. function createXMLHttpRequest() {
  61. try {
  62.       request  =  new  XMLHttpRequest();
  63.    } catch (trymicrosoft) {
  64.      try {
  65.     
  66.         request  =  new  ActiveXObject("Msxml2.XMLHTTP");
  67.      } catch (othermicrosoft) {
  68.        try {
  69.       
  70.           request  =  new  ActiveXObject("Microsoft.XMLHTTP");
  71.        } catch (failed) {
  72.           request  =  false ;
  73.        }  
  74.      }
  75.    }
  76.    if (!request)
  77.      alert("Error initializing XMLHttpRequest!");
  78.      
  79. }
  80. function addLine(obj){
  81. var  obj objSourceRow =obj.parentNode.parentNode;
  82. var  obj objTable =obj.parentNode.parentNode.parentNode.parentNode;
  83. if( obj.value =='增加'){
  84. createXMLHttpRequest();
  85. getCustomerInfo();
  86. rowIndex++;
  87. var  objRow = objTable .insertRow(rowIndex);
  88. var objCell;
  89. objCell = objRow .insertCell(0);
  90. objCell.innerHTML = "<input name='row" +rowIndex+"'  value  =  '第"+rowIndex+"题' > "//在表格单元中添加文本输入框
  91. objCell = objRow .insertCell(1);
  92. objCell.innerHTML = "<select name=PRO" +rowIndex+" > "+AddOption(Values,Strs)+" </ select > ";
  93. objCell = objRow .insertCell(2);
  94. objCell.innerHTML = "<input name='row" +rowIndex+"'  value  =  '' > "
  95. objCell = objRow .insertCell(3);
  96. objCell.innerHTML = "<input name='row" +rowIndex+"'  value  =  '' > ";
  97. objCell = objRow .insertCell(4);
  98. objCell.innerHTML = objSourceRow .cells[4].innerHTML.replace(/增加/,'删除');
  99. }
  100. else{
  101. objTable.lastChild.removeChild(objSourceRow);
  102. rowIndex--;
  103. }
  104.      </ script >
  105. </ head >
  106. < body   bgcolor = "#ffffff"   onLoad = "createXMLHttpRequest();getCustomerInfo();" >
  107.      < table   align = "center" >
  108.          < tr   align = "center" >
  109.              < td   width = "100" >
  110.                 大题号
  111.              </ td >
  112.              < td   width = "100" >
  113.                 题型
  114.              </ td >
  115.              < td   width = "100" >
  116.                 小题量
  117.              </ td >
  118.              < td   width = "100" >
  119.                 分值
  120.              </ td >
  121.              < td   width = "100" >
  122.              </ td >
  123.          </ tr >
  124.      </ table >
  125.      < form   name = "form1"   method = "post" >
  126.      < table   border = "0"   align = "center" >
  127.          < tr >
  128.              < td   width = "100" >
  129.              </ td >
  130.              < td   width = "100" >
  131.              </ td >
  132.              < td   width = "100" >
  133.              </ td >
  134.              < td   width = "100" >
  135.              </ td >
  136.              < td   width = "100" >
  137.                  < input   name = "add"   type = "button"   id = "add"   value = "增加"   onclick = "addLine(this)" />
  138.              </ td >
  139.          </ tr >
  140.          < tr >
  141.              < td >  
  142.                 
  143.              </ td >
  144.              < td >  
  145.                 
  146.              </ td >
  147.              < td >  
  148.                 
  149.              </ td >
  150.          </ tr >
  151.          < tr >
  152.              < td >  
  153.                  
  154.              </ td >
  155.              < td >  
  156.                 
  157.              </ td >
  158.              < td >  
  159.                 
  160.              </ td >
  161.          </ tr >
  162.      </ table >
  163.      </ form >
  164. </ body >
  165. </ html >

 

 

JSP 页面代码:

  1. < %@ page  contentType = "text/html; charset=GBK"  % >
  2. <
  3. String  contents1 = "单选题"
  4. String  contents2 = "多选题"
  5. String  value1 = "1" ;  
  6. String  value2 = "2" ;  
  7. //传回响应数据   
  8. response.setContentType("text/xml;  charset = UTF -8"); 
  9. response.setHeader("Cache-Control", "no-cache"); 
  10. out.println(" < response > ");
  11. out.println(" < res > " + contents1 + " </ res > ");
  12. out.println(" < res > " + contents2 + " </ res > "); 
  13. out.println(" < val > " + value1 + " </ val > ");
  14. out.println(" < val > " + value2 + " </ val > "); 
  15. out.println(" </ response > "); 
  16.  out.close();
  17.             
  18.  % >

 

关天数据库连接用javabean就好,和写JSP页面一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue.js 3中实现自动完成下拉列表的方法很简单,可以使用Vue.js提供的指令和组件的功能来实现。 首先,你需要引入ElementUI库,它是一个基于Vue.js的组件库,提供了非常好用的组件和指令。其中el-autocomplete是用来实现输入框的自动完成下拉列表的组件。 接下来,你需要在Vue.js的template(模板)中使用el-autocomplete组件,最基本的使用方法如下: ```html <template> <el-autocomplete v-model="value" :fetch-suggestions="querySearch" placeholder="请输入" /> </template> ``` 在这里,v-model用来绑定输入框,placeholder用来设置输入框的提示语,:fetch-suggestions用来绑定一个函数,该函数会在输入框输入时被调用,它的返回是一个数组,用来显示下拉列表中的选项。 接下来,你需要在Vue.js的script(脚本)中实现querySearch函数,该函数需要返回一个Promise对象,用来异步获取输入框输入后的联想词,例如: ```javascript <script> import { ref } from 'vue'; import { fetchSuggestions } from '@/api/suggestion.js'; export default { setup() { const value = ref(''); const querySearch = async (queryString) => { return await fetchSuggestions(queryString); }; return { value, querySearch, }; }, }; </script> ``` 在这里,我们用了Vue.js 3中新增的setup函数,在该函数中,我们使用了ref定义了value变量,并定义了querySearch函数,该函数使用async/await实现异步调用了一个api/suggestion.js的函数fetchSuggestions,该函数的接口可以根据自己的实际需求进行实现。 最后,你需要在Vue.js的style(样式)中引入ElementUI的样式,以确保el-autocomplete组件正常显示: ```css @import "element-plus/packages/theme-chalk/src/index.scss"; ``` 综上所述,使用Vue.js 3和ElementUI库实现输入框的自动完成下拉列表功能就这么简单,你只需要引入库、定义组件和指令、实现函数即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值