checkbox如何根据指定值自动选中

求大神。
下拉列表里选中 财务部 后,下面有所有的员工,前面有checkbox,怎样让财务部的员工的框自动选中?
菜鸟求帮忙。谢谢。

7个回答

 <input type="checkbox" name="empnos" value="1"/>
        <input type="checkbox"  name="empnos" value="2"/>这是checkbox,
        <select id="deptno" name="deptno" onchange="change1()"> 
            <option value="-1">---请选择---</option> 
            <option value="1">11</option>
            <option value="2">22</option>
        </select> 
    </body>
    <script>
        function change1(){
            var deptno=document.getElementById("deptno").value;
             var inputs = document.getElementsByName("empnos");

             for(var i=0;i<inputs.length;i++){
                var val = inputs[i].value;
                console.info(i);
                if(deptno==val){
                    inputs[i].checked=true;
                }else{
                    inputs[i].checked=false;
                }
             }  
        }

u010238426
Ramon_Leo 谢谢你哥哥。我试试看。辛苦了!
接近 4 年之前 回复

循环遍历checkbox,判断是否属于下拉选中的,如果是就勾选。具体要看你的语言和实现的代码,

u010238426
Ramon_Leo 您好。 如果emp.deptno==dept.deptno的话就自动勾选。 遍历这个过程是在哪里实现呢?js吗?我还是学生,您要有空受累您给说一下
接近 4 年之前 回复

遍历到当前选中的,设置checked="checked";就可以了。

u010238426
Ramon_Leo <input type="checkbox" id="empnos" name="empnos" value="${emp.deptno }"/>这是checkbox,<select id="deptno" name="deptno"> <option value="-1">---请选择---</option> <c:forEach items="${requestScope.lstDepts }" var="dept"> <option value="${dept.deptno }">${dept.dname }</option> </c:forEach> </select>这是下拉列表。您能受累说一下吗
接近 4 年之前 回复

点击下拉列表的option 获取id 传到js, 然后在js 里获取id 然后 通过这id 查询数据库 财务员工对应的id 查询数据后 然后返回给 js 做财务 checkbox 选中 特效 就可以了

也就是 checked即可。

q1343454666
阿斯顿阿三在 回复u010238426: 你js 会用吗? 还有ajax ? 如果不会 简单给你说下 在select 加 onchange 事件 然后都是js做的事情了
接近 4 年之前 回复
u010238426
Ramon_Leo <input type="checkbox" id="empnos" name="empnos" value="${emp.deptno }"/>这是checkbox,<select id="deptno" name="deptno"> <option value="-1">---请选择---</option> <c:forEach items="${requestScope.lstDepts }" var="dept"> <option value="${dept.deptno }">${dept.dname }</option> </c:forEach> </select>这是下拉列表。您能受累说一下吗
接近 4 年之前 回复

将emp.deptno的值存在员工的复选框的属性中,点击部门是得到部门deptno,
在部门的复选框的点击时间中通过js得到两边的值判断两边的值是否相等

u010238426
Ramon_Leo <input type="checkbox" id="empnos" name="empnos" value="${emp.deptno }"/>这是checkbox,<select id="deptno" name="deptno"> <option value="-1">---请选择---</option> <c:forEach items="${requestScope.lstDepts }" var="dept"> <option value="${dept.deptno }">${dept.dname }</option> </c:forEach> </select> 和您说的一样。但js这块我不太熟悉。学校还没讲太多,您能受累给说一下js怎样操作吗
接近 4 年之前 回复

我js这块不知道具体怎么写,真是麻烦各位了

循环遍历checkbox,判断是否属于下拉选中的,如果是就勾选。具体要看你的语言和实现的代码,

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
一个查询功能,如何根据checkbox选中的值到数据库查询对应的字段。

之前是用的下拉框,即单选,现在想改成用checkbox多选,不知道怎么写。 把checkbox的name都写成一样的,然后 String[] checkbox = request.getParameterValues("")?

js fancytree插件选中根据输入的title选中节点,怎么将该节点滚动到页面可见位置?

如题,用fancytree插件时,根据需求添加了一个搜索框用来搜索tree中节点的title,搜索之后找到了node,能选中但是由于位置有限所以树的高度不高。选中的节点在下边,怎么在找到该节点时将他滚动到屏幕可见区域 ![目前效果如图](https://img-ask.csdn.net/upload/201711/28/1511859038_907309.jpg) ``` //选中的代码如下 $(".dqq_tree_01").fancytree("getTree").visit(function (node) { if (node['data']['fdepartmentNo'] == _v.fdepartmentNos) { // node.setSelected(true); node.setFocus() } }); ```

jsp弹出框传值问题(一个jsp 点击按钮弹出另一个jsp,选中记录带回数据显示在指定框中)

如图,共有两个jsp: 一:add.jsp;二;select.jsp ![add.jsp](https://img-ask.csdn.net/upload/201507/25/1437791253_308253.jpg) ![select.jsp](https://img-ask.csdn.net/upload/201507/25/1437791270_529897.jpg) 其中在add.jsp上点击请选择按钮,弹出select.jsp页面,选择之后点击确定,应该如何将值传递回来,我知道是那个通过url携带参数,但是我一直写不对。下面附上两个jsp页面的源码: # ## # 【1.add.jsp】: ``` <script> function openwindow(){ window.showModalDialog("/jxw/xq.do?action=showTjList",window, "status:no;scroll:yes; dialogWidth:400px;dialogHeight:500px"); } </script> <body> <form id="addForm" action="<c:url value='/xq.do?action=doAddxq'/>" method="post" id="addForm" name="addForm"> <tr> <th><b>*</b>推荐企业:</th> <td height="25" align="left" bgcolor="#FFFFFF" colspan="3"><textarea readonly="readonly" class="cl_textarea_small" name="xqName" id="xqName" width="100"> ${tjqy.qymc}</textarea> <input type=button name=inputboxbt value=请选择 onclick="openwindow();"></td> </tr> </body> ``` # 【2.select.jsp】 ``` <script> function bconfirm(){ opener.document.all['inboxname'].value=document.form.inboxname.value; document.form.submit(); window.close(); } function bcancel(){ window.close(); } //将值传给text文本框 function result(form) { var a = document.getElementById("inboxname"); a.value = ""; for (var i = 0; i < form.elements.length; i++) { var e = form.elements[i]; if (e.name == "ifCheck" && e.checked == true) { a.value = a.value + e.value + "," } } } </sctipt> <body> <h3>请选择企业:</h3> <div class="op_btn"></div> <!--按钮区域结束 --> <div class="form"> <form method=post name=form id="form" action=" add.jsp"> <!-- <input id="inboxname" type="hidden" name="inboxname" value="" />--> <textarea readonly="readonly" class="cl_textarea_small" name="inboxname" id="inboxname" value=""></textarea><p> <input type=button name=inputboxbt value=确定 onclick="bconfirm();"> <input type=button name=inputboxbs value=关闭 onclick="bcancel();"> <table> <tr> <th style="width: 5%;"><input type="checkbox" onclick="checkOrCancel(this);" class="textCursor" /> </th> <th>序号</th> <th>企业名称</th> </tr> <c:forEach items="${domain}" var="domain1" varStatus="status"> <tr <c:if test="${status.count%2 == 0 }">class="grid_dark"</c:if> <c:if test="${status.count%2 == 1 }">class="grid_dark"</c:if> id="${domain1.id }"> <td><input type="checkbox" value="${domain1.id }" name="ifCheck" style="cursor: pointer;" id="ifCheck" onClick="result(this.form)" /> <input id="qymc.id" type="hidden" name="qymc.id" value="" /></td> <td>${status.count }</td> <td>${domain1.qymc }</td> </tr> </c:forEach> </table> </form> </div> </div> </body> ``` 请问一下,点击确定的时候,弹出的select.jsp页面被关闭,同时在页面add.jsp上面显示出来,这个应该怎么做?哪位大哥知道。麻烦了。

EBS form二次开发 如何用checkbox在第一个界面勾选n行数据,传送到下一个页面显示出来

小弟现在需要做这么一个,在queryfind 中查出若干行数据,在带有复选框列表中显示,然后勾选n条数据后点击‘打开’按钮,跳转到另一个页面,勾选中的数据能够自动跳入列表中并显示 谢谢![图片说明](https://img-ask.csdn.net/upload/201904/15/1555317777_905191.png)

Form表单数据自动填充的问题

应用很简单明了,就是将一个需要修改的员工信息传递到一个页面然后自动把已存在的数据填写到合适的位置,然后供人修改 问题:后台数据可以得到,可是无法将数据绑定到指定控件上 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>MyExtFullForm.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> <!-- Ext显示必须链接,前后顺序不能颠倒 --> <link rel="stylesheet" href="resources/css/ext-all.css" type="text/css"></link> <script type="text/javascript" src="ext-base.js"></script> <script type="text/javascript" src="ext-all.js"></script> <script type="text/javascript" src="ext-lang-zh_CN.js"></script> <!-- End --> <script> Ext.onReady(function(){ var reader = new Ext.data.JsonReader({ successProperty : 'success', root : 'data' }, [{ name : 'name', type : 'String', mapping : 'name' }, { name : 'address', type : 'String', mapping : 'address' }, { name : 'loves', type : 'int', mapping : 'loves' }, { name : 'memo', type : 'String', mapping : 'memo' }]); var form = new Ext.form.FormPanel({ labelAlign:'right', labelWidth:60, title:'我的表单', frame:true, width:650, url:'form.jsp', items:[{ layout:'column', items:[{ columnWidth:.5, layout:'form', defaultType:'textfield', xtype:'fieldset', title:'姓名', autoHeight:true, items:[{ fieldLabel: '姓名', name:'name', value:reader.get('name') },{ fieldLabel: '地址', name:'address', value:reader.get('address') }] },{ columnWidth:.5, layout:'form', defaultType:'checkbox', xtype:'fieldset', title:'住址', style:'margin-left:20px;', autoHeight:true, items:[{ fieldLabel: '足球', inputValue:'1', name:'loves' },{ fieldLabel: 'DIY', inputValue:'2', name:'loves' },{ fieldLabel: '睡觉', inputValue:'3', name:'loves' },{ xtype:'panel',html:'<center><img src="icon-info.gif"/></center>' }] }] },{ xtype:'fieldset', title:'个人介绍', autoHeight:true, items:[{ width:545, xtype:'textarea', name:'memo', fieldLabel:'个人介绍' }] }], buttons:[{ text:'提交', handler:function(){ form.getForm().submit(); } },{ text:'读取', handler:function(){ form.getForm().load({url:'Ds/Form.txt'}); Ext.MessageBox.alert('Msg',reader) } }] }); form.render("form"); }) </script> </head> <body> <div id="form"></div> </body> </html> ======================================================================== 我的后台Form.txt内容为 {success:true,data:[{ name:'Rooney', address:'Mu', loves:2, memo:'Tank' }]} ======================================================================= 请大家帮我看看 还有两个问题,1.多选框如果取到选中值 2.表单提交的时候可不可以先把所有控件的值封装成json格式的数组然后传走呢? Form表单数据自动填充

如何通过document对象来获取select标签下option元素的element对象?

需求:自动生成目标元素的Xpath字符串 目前思路:对document对象添加事件监听,当对页面元素进行操作时,获取activeElement,然后生成Xpath 问题:目前input的text,Button,radio和checkbox测试都没问题,但是当操作select标签下的option时,activeElement返回的还是select的element对象 有什么办法能获取到option的element对象吗

求JQ或JS仿京东淘宝属性规格SKU样式

把这个修改成属性值可以在input-text区自定义,删除自定义的值后自动恢复初始属性值。如图所示功能:![图片说明](https://img-ask.csdn.net/upload/201608/13/1471094693_376707.png) ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>生成表格</title> <link rel="stylesheet" type="text/css" href="css/table.css"> <style type="text/css"> .hide {display: none;} .mt10 {margin-top: 10px;} .control-group {overflow: hidden;} .control-group a {color: #666;text-decoration: none;} .control-group a:hover {text-decoration: underline;} .control-label {float: left;width: 100px;line-height: 24px;} .controls {overflow: hidden;} .controls input[type="text"] {border: 1px solid #ddd;height: 20px;width: 120px;} .controls input[type="button"] {margin-top: 10px;height: 32px;cursor: pointer;} .config_item {margin-top: 10px;border: 1px dashed #ddd;padding: 10px;} .config_item section {margin-top: 10px;} .config_item section span {margin-right: 16px;} .config_item input[type="text"] {width: 80px;text-align: center;} .choose_config .Father_Title {margin: 0;margin-bottom: 10px;padding: 0;font-size: 16px;font-weight: normal;display: inline-block;vertical-align: middle;} .choose_config .Father_Item {padding: 0;margin: 0;margin-bottom: 10px;list-style: none;display: inline-block;vertical-align: middle;} .choose_config .Father_Item li {display: inline-block;margin-right: 10px;} .columnList {border-collapse: collapse;} .columnList th {background-color: #eee;} .columnList th,.columnList td {padding: 5px 10px;border: 1px solid #ddd;line-height: 24px;text-align: center;} </style> </head> <body> <!-- 选择信息 --> <div class="control-group choose_config"> <div class="control-label">选择信息:</div> <div class="controls"> <h3 class="Father_Title">颜色:</h3> <ul class="Father_Item Father_Item0"> <li><label><input id="Checkbox0" type="checkbox" class="checkbox check_all" value="全选">全选</label></li> <li><label><input id="Checkbox0" type="checkbox" class="checkbox check_item" value="红色">红色</label></li> <li><label><input id="Checkbox0" type="checkbox" class="checkbox check_item" value="白色">白色</label></li> <li><label><input id="Checkbox0" type="checkbox" class="checkbox check_item" value="土豪金">土豪金</label></li> </ul><br> <h3 class="Father_Title">内存:</h3> <ul class="Father_Item Father_Item1"> <li><label><input id="Checkbox0" type="checkbox" class="checkbox check_all" value="全选">全选</label></li> <li><label><input id="Checkbox1" type="checkbox" class="checkbox check_item" value="32G">32G</label></li> <li><label><input id="Checkbox1" type="checkbox" class="checkbox check_item" value="16G">16G</label></li> </ul><br> <h3 class="Father_Title">尺寸:</h3> <ul class="Father_Item Father_Item2"> <li><label><input id="Checkbox0" type="checkbox" class="checkbox check_all" value="全选">全选</label></li> <li><label><input id="Checkbox2" type="checkbox" class="checkbox check_item" value="5.5">5.5</label></li> <li><label><input id="Checkbox2" type="checkbox" class="checkbox check_item" value="4.5">4.5</label></li> <li><label><input id="Checkbox2" type="checkbox" class="checkbox check_item" value="3.5">3.5</label></li> </ul><br> </div> </div> <!-- 生成表格 --> <div class="control-group mt10"> <div class="control-label">生成表格:</div> <div class="controls" id="createTable"> </div> </div> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> /** * Created by Administrator on 14-12-01. * 模拟淘宝SKU添加组合 * 页面注意事项: * 1、 .Father_Title 这个类作用是取到所有标题的值,赋给表格,如有改变JS也应相应改动 * 2、 .Father_Item 这个类作用是取类型组数,有多少类型就添加相应的类名:如: Father_Item1、Father_Item2、Father_Item3 ... */ $(function() { $(document).on('change', '.choose_config label', function() { var parent=$(this).parents('.Father_Item'); var _this=$('.checkbox',this); // 是否全选 $('.checkbox',parent).each(function() { var bCheck2=true; if (_this.hasClass('check_all')) { if (_this.get(0).checked) { bCheck2=true; $('.check_item',parent).prop('checked', bCheck2); }else{ bCheck2=false; $('.check_item',parent).prop('checked', bCheck2); } return false; } else { if ((!this.checked)&&(!$(this).hasClass('check_all'))) { bCheck2 = false; $('.check_all',parent).prop('checked', bCheck2); return false; } } $('.check_all',parent).prop('checked', bCheck2); }); step.Creat_Table(); }); var step = { // 信息组合 Creat_Table: function() { step.hebingFunction(); var SKUObj = $('.Father_Title'); var arrayTile = new Array(); // 表格标题数组 var arrayInfor = new Array(); // 盛放每组选中的CheckBox值的对象 var arrayColumn = new Array(); // 指定列,用来合并哪些列 var bCheck = true; // 是否全选,只有全选,表格才会生成 var columnIndex = 0; $.each(SKUObj, function(i, item) { arrayColumn.push(columnIndex++); arrayTile.push(SKUObj.eq(i).text().replace(':', '')); var itemName = '.Father_Item' + i; var bCheck2 = true; // 是否全选 // 获取选中的checkbox的值 var order = new Array(); $(itemName + ' .check_item:checked').each(function() { order.push($(this).val()); }); arrayInfor.push(order); if (order.join() == '') { bCheck = false; } }) // 开始生成表格 if (bCheck) { $('#createTable').html(''); var table = $('<table id="process" class="columnList"></table>'); table.appendTo($('#createTable')); var thead = $('<thead></thead>'); thead.appendTo(table); var trHead = $('<tr></tr>'); trHead.appendTo(thead); // 创建表头 var str = ''; $.each(arrayTile, function(index, item) { str += '<th width="100">' + item + '</th>'; }) str += '<th width="200">价格</th><th width="100">操作</th>'; trHead.append(str); var tbody = $('<tbody></tbody>'); tbody.appendTo(table); var zuheDate = step.doExchange(arrayInfor); if (zuheDate.length > 0) { //创建行 $.each(zuheDate, function(index, item) { var td_array = item.split(','); var tr = $('<tr></tr>'); tr.appendTo(tbody); var str = ''; $.each(td_array, function(i, values) { str += '<td>' + values + '</td>'; }); str += '<td ><input name="Txt_PriceSon" class="inpbox inpbox-mini" type="text"></td>'; str += '<td ><a href="#">删除</a></td>'; tr.append(str); }); } //结束创建Table表 arrayColumn.pop(); //删除数组中最后一项 //合并单元格 $(table).mergeCell({ // 目前只有cols这么一个配置项, 用数组表示列的索引,从0开始 cols: arrayColumn }); } else { //未全选中,清除表格 document.getElementById('createTable').innerHTML = ""; } }, hebingFunction: function() { $.fn.mergeCell = function(options) { return this.each(function() { var cols = options.cols; for (var i = cols.length - 1; cols[i] != undefined; i--) { mergeCell($(this), cols[i]); } dispose($(this)); }) }; function mergeCell($table, colIndex) { $table.data('col-content', ''); // 存放单元格内容 $table.data('col-rowspan', 1); // 存放计算的rowspan值 默认为1 $table.data('col-td', $()); // 存放发现的第一个与前一行比较结果不同td(jQuery封装过的), 默认一个"空"的jquery对象 $table.data('trNum', $('tbody tr', $table).length); // 要处理表格的总行数, 用于最后一行做特殊处理时进行判断之用 // 进行"扫面"处理 关键是定位col-td, 和其对应的rowspan $('tbody tr', $table).each(function(index) { // td:eq中的colIndex即列索引 var $td = $('td:eq(' + colIndex + ')', this); // 获取单元格的当前内容 var currentContent = $td.html(); // 第一次时走次分支 if ($table.data('col-content') == '') { $table.data('col-content', currentContent); $table.data('col-td', $td); } else { // 上一行与当前行内容相同 if ($table.data('col-content') == currentContent) { // 上一行与当前行内容相同则col-rowspan累加, 保存新值 var rowspan = $table.data('col-rowspan') + 1; $table.data('col-rowspan', rowspan); // 值得注意的是 如果用了$td.remove()就会对其他列的处理造成影响 $td.hide(); // 最后一行的情况比较特殊一点 // 比如最后2行 td中的内容是一样的, 那么到最后一行就应该把此时的col-td里保存的td设置rowspan // 最后一行不会向下判断是否有不同的内容 if (++index == $table.data('trNum')) $table.data('col-td').attr('rowspan', $table.data('col-rowspan')); } // 上一行与当前行内容不同 else { // col-rowspan默认为1, 如果统计出的col-rowspan没有变化, 不处理 if ($table.data('col-rowspan') != 1) { $table.data('col-td').attr('rowspan', $table.data('col-rowspan')); } // 保存第一次出现不同内容的td, 和其内容, 重置col-rowspan $table.data('col-td', $td); $table.data('col-content', $td.html()); $table.data('col-rowspan', 1); } } }) } // 同样是个private函数 清理内存之用 function dispose($table) { $table.removeData(); } }, doExchange: function(doubleArrays) { // 二维数组,最先两个数组组合成一个数组,与后边的数组组成新的数组,依次类推,知道二维数组变成以为数组,所有数据两两组合 var len = doubleArrays.length; if (len >= 2) { var arr1 = doubleArrays[0]; var arr2 = doubleArrays[1]; var len1 = arr1.length; var len2 = arr2.length; var newLen = len1 * len2; var temp = new Array(newLen); var index = 0; for (var i = 0; i < len1; i++) { for (var j = 0; j < len2; j++) { temp[index++] = arr1[i] + ',' + arr2[j]; } } var newArray = new Array(len - 1); newArray[0] = temp; if (len > 2) { var _count = 1; for (var i = 2; i < len; i++) { newArray[_count++] = doubleArrays[i]; } } return step.doExchange(newArray); } else { return doubleArrays[0]; } } } }) </script> </body> </html> ``` ``` ```

bootstrap-Table后台已返回json数据,前台不显示

//先销毁表格 $table.bootstrapTable('destroy'); //再初始化表格 $table.bootstrapTable({ //请求地址,此处数据为本地加载 url: path+"/Build/searchBuilding", //请求方式 method: "POST", //请求内容类型 contentType: "application/x-www-form-urlencoded", //数据类型 dataType: "json", //table高度:如果没有设置,表格自动根据记录条数觉得表格高度 //height: '582', //是否显示行间隔色 striped: true, //是否启用排序 sortable: true, //排序方式 sortOrder: "bid asc", //是否使用缓存 cache: false, //每行的唯一标识 uniqueId: "bid", //指定工具栏 toolbar: "#toolbar", //显示刷新按钮 showRefresh: true, //切换显示样式 showToggle: true, //默认显示详细视图 cardView: false, //是否显示搜索 search: false, //是否显示分页 pagination: true, //是否启用点击选中行 clickToSelect: false, //最少要显示的列数 minimumCountColumns: 2, //显示隐藏列 showColumns: true, //cell没有值时显示 undefinedText: '-', //分页方式:client客户端分页,server服务端分页 sidePagination: "server", //每页的记录行数 pageSize: 20, //初始化加载第1页,默认第1页 pageNumber: 1, //可供选择的每页的行数 pageList: "[10, 20, 50, 80, 100]", paginationFirstText: "首页", paginationPreText: "上一页", paginationNextText: "下一页", paginationLastText: "末页", //按钮样式 buttonsClass: 'btn', //分页器class iconSize: 'Page', //查询条件 queryParams: queryParams, //表头 columns: [{ field: 'bid',//id checkbox: true,//checkbox align: 'center',//对其方式 valign: 'middle'//对其方式 }, { title: '幢编号', field: 'building_id', align: 'center', valign: 'middle', }, { title: '幢名称', field: 'building_name', align: 'center', valign: 'middle' },{ title: '操作', field: 'operate', align: 'center', events: window.operateEvents, formatter: genderOpt//如需操作行数据,直接添加formatter对应函数名参数分别为value, row, index }], onLoadSuccess: function (res) {//可不写 //加载成功时 console.log(res); }, onLoadError: function (statusCode) { return "加载失败了"; }, formatLoadingMessage: function () { //正在加载 return "拼命加载中..."; }, formatNoMatches: function () { //没有匹配的结果 return '无符合条件的记录'; } }); json数据是{"rows":[{"bid":1,"building_id":"1","building_name":"1"},{"bid":2,"building_id":"2","building_name":"2"},{"bid":3,"building_id":"3","building_name":"3"}],"total":3}

ssh 实体对象转jason 前台无法显示

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <%@ include file="/public/head.jspf" %> <style type="text/css"> body { margin: 1px; } .searchbox { margin: -3; } </style> <script type="text/javascript"> $(function(){ $('#dg').datagrid({ //url地址改为请求categoryAction url:'forder_queryJoinUser.action', loadMsg:'Loading......', queryParams:{username:''}, fitColumns:true,//水平自动展开,如果设置此属性,则不会有水平滚动条,演示冻结列时,该参数不要设置 striped:true, //当数据多的时候不换行 nowrap:true, singleSelect:false, //如果为真,只允许单行显示,全显功能失效 //设置分页 pagination:true, //设置每页显示的记录数 pageSize:10, //设置可选的每页记录数,供用户选择,默认是10,20,30,40... pageList:[5,10,15,20], idField:'id',//指定id为标识字段,在删除,更新的时候有用,如果配置此字段,在翻页时,换页不会影响选中的项 toolbar: [{ iconCls: 'icon-edit', text:'更新订单', handler: function(){ //判断是否有选中行记录,使用getSelections获取选中的所有行 var rows = $("#dg").datagrid("getSelections"); if(rows.length == 0) { //弹出提示信息 $.messager.show({ //语法类似于java中的静态方法,直接对象调用 title:'错误提示', msg:'至少要选择一条记录', timeout:2000, showType:'slide', }); }else if(rows.length != 1) { //弹出提示信息 $.messager.show({ //语法类似于java中的静态方法,直接对象调用 title:'错误提示', msg:'每次只能更新一条记录', timeout:2000, showType:'slide', }); } else{ //弹出更新的页面 parent.$("#win").window({ title:"更新订单", width:350, height:250, content:'<iframe src="send_order_update.action" frameborder="0" width="100%" height="100%"/>' }); } } },'-',{ iconCls: 'icon-remove', text:'删除订单', handler: function(){ //判断是否有选中行记录,使用getSelections获取选中的所有行 var rows = $("#dg").datagrid("getSelections"); //返回被选中的行,如果没有任何行被选中,则返回空数组 if(rows.length == 0) { //弹出提示信息 $.messager.show({ title:'错误提示', msg:'至少要选择一条记录', timeout:2000, showType:'slide', }); } else { //提示是否确认删除,如果确认则执行删除的逻辑 $.messager.confirm('删除的确认对话框', '您确定要删除此项吗?', function(r){ if (r){ //1. 从获取的记录中获取相应的的id,拼接id的值,然后发送后台1,2,3,4 var ids = ""; for(var i = 0; i < rows.length; i ++) { ids += rows[i].id + ","; } ids = ids.substr(0, ids.lastIndexOf(",")); //2. 发送ajax请求 $.post("forder_deleteByIds.action",{ids:ids},function(result){ if(result == "true") { //将刚刚选中的记录删除,要不然会影响后面更新的操作 $("#dg").datagrid("uncheckAll"); //刷新当前页,查询的时候我们用的是load,刷新第一页,reload是刷新当前页 $("#dg").datagrid("reload");//不带参数默认为上面的queryParams } else { $.messager.show({ title:'删除异常', msg:'删除失败,请检查操作', timeout:2000, showType:'slide', }); } },"text"); } }); } } },'-',{ //查询按钮不是LinkButton,它有语法,但是也支持解析HTML标签 text:"<input id='ss' name='serach' />" }], rowStyler: function(index,row){ console.info("index" + index + "," + row) if(index % 2 == 0) { return 'background-color:#fff;'; } else { return 'background-color:#c4e1e1;'; } }, //同列属性,但是这些列将会冻结在左侧,大小不会改变,当宽度大于250时,会显示滚动条,但是冻结的列不在滚动条内 frozenColumns:[[ {field:'checkbox',checkbox:true}, {field:'id',title:'编号',width:60} ]], columns:[[ {field:'name',title:'收货人姓名',width:80}, {field:'phone',title:'收货人电话',width:100}, {field:'remark',title:'买家留言',width:100}, {field:'date',title:'创建日期',width:100}, {field:'total',title:'订单总价',width:100}, {field:'address',title:'收货地址',width:150}, {field:'user.id',title:'买家id',width:60}, {field:'user.login',title:'买家登录名',width:80}, {field:'status.status',title:'订单状态',width:100} ]] }); //把普通的文本框转化为查询搜索文本框 $('#ss').searchbox({ //触发查询事件 searcher:function(value,username){ //value表示输入的值 //获取当前查询的关键字,通过DataGrid加载相应的信息,使用load加载和显示第一页的所有行。 //如果指定了参数,它将取代'queryParams'属性。通常可以通过传递一些参数执行一次查询,通过调用这个方法会向上面url指定的action去发送请求,从服务器加载新数据。 $('#dg').datagrid('load',{ username: value }); }, prompt:'请输入搜索关键字' }); }); </script> </head> <body> <table id="dg"></table> </body> </html> `jsp代码 下面action: public String queryJoinUser() { // 用来存储分页的数据 pageMap = new HashMap<String, Object>(); System.out.println(username); // 根据关键字和分页的参数查询相应的数据 List<Forder> forderList = forderService.queryJoinUser(username, page, rows); pageMap.put("\"rows\"", forderList); pageMap.put("\"total\"", forderService.getCount(username)); System.out.println(pageMap); return "jsonMap"; } struts.xml <action name="forder_*" class="forderAction" method="{1}"> <result name="jsonMap" type="json"> <param name="root">pageMap</param> <param name="excludeProperties"> rows\[\d+\]\.post, rows\[\d+\]\.user\.pass, rows\[\d+\]\.user\.sex, rows\[\d+\]\.user\.phone, rows\[\d+\]\.user\.email, rows\[\d+\]\.status\.id </param> </result> <result name="bank"> /user/bank.jsp </result> </action> 执行后pageMap的输出: {"total"=1, "rows"=[Forder [id=1, name=张小, phone=1851663595, remark=是否被, date=null, total=14.00, post=4325232, addressrk=, date=null, total=100.00, post=dcvdf, address=市场v吃饭的]]} `` 没有报任何错误就是不显示![图片说明](https://img-ask.csdn.net/upload/201706/07/1496767475_187876.png) ``` ``` ```

js问题 取hidden标签的value出现"on",有代码(本人认为较离奇)

下列标签都自动生成,可是唯狂多项选择中的第四题,选择选项时得到的值中会有一个"on", [b]多项选择中的@@@题选择时出现on不明白望高手指定迷津!谢谢[/b] <html> <head> <link rel="stylesheet" type="text/css" href="/survey/share/calendar/calendar.css"> <script type="text/javascript" src="/survey/share/calendar/calendar.js"></script> <script type="text/javascript" src="/survey/share/calendar/pageInclude.js"></script> <title>列表</title> <link rel="stylesheet" type="text/css" href="/survey/share/pageControl/pageControl.css" /> <link href="/survey/css/main.jsp" rel="stylesheet" type="text/css"/> <link href="/survey/css/list.jsp" rel="stylesheet" type="text/css"/> <script language="javascript" src="/survey/js/listPageJs.js"></script> <script language="javascript" src="/survey/js/string.js"></script> <script language="javascript"> function doSearch(){ document.getElementById("errorSpan").innerHTML = ""; var errorInfo = ""; if(errorInfo.length==0){ frmSearch.submit(); }else{ document.getElementById("errorSpan").innerHTML = errorInfo; } } function check(){ document.getElementById("errorSpan").innerHTML = ""; var errorInfo = ""; getRadioValue(); getCheckBoxValue(); getTextareaValue(); if(errorInfo.length==0){ alert(radValue); alert(chboxValue); alert(textValue); document.getElementById("submitStr1").value=radValue; document.getElementById("submitStr2").value=chboxValue; document.getElementById("submitStr3").value=textValue; radValue="",chboxValue="",textValue=""; //frmAction.submit(); }else{ document.getElementById("errorSpan").innerHTML = errorInfo; } } var radValue=""; var chboxValue=""; var textValue=""; function getRadioValue() { var arr=document.getElementsByName("radioValue"); for(i=0;i<arr.length;i++){ if(arr[i].value!=""){ if(radValue==""){ radValue+=arr[i].value; }else{ radValue=radValue+"-"+arr[i].value } } } } function getCheckBoxValue() { var arr=document.getElementsByName("checkboxValue"); for(i=0;i<arr.length;i++){ if(arr[i].value!=""){ if(chboxValue==""){ chboxValue+=arr[i].value; }else{ chboxValue=chboxValue+"-"+arr[i].value; } } } } function getTextareaValue() { var arr=document.getElementsByName("textareaValue"); for(i=0;i<arr.length;i++){ if(arr[i].value!=""){ if(textValue==""){ textValue+=arr[i].id+","+arr[i].value; }else{ textValue=textValue+"-"+arr[i].id+","+arr[i].value; } } } } function addStr (obj,questionId,optionId){ alert(questionId); if(obj.type=="radio"){ var radioObj= document.getElementById(questionId); radioObj.value=questionId+","+optionId; } else if(obj.type=="checkbox"){ var bool=true; var delBaVa=""; var checkboxObje=document.getElementById(questionId); var str= checkboxObje.value; if(str!=""&&str.length>0){ arr= str.split(","); for(j=0;j<arr.length;j++){ if(arr[j]==optionId){ bool=false; }else if(delBaVa==""){ delBaVa=arr[0]; } else if(obj.checked==false){ if(arr[j]!=optionId){ bool=false; delBaVa =delBaVa+","+arr[j]; } } } if(obj.checked==false){ checkboxObje.value=delBaVa; } } if(str==""&&str.length<1){ checkboxObje.value=questionId+","+optionId; }else if(str!=""&&str.length>1){ if(bool){ checkboxObje.value=checkboxObje.value+","+optionId; } } var aaa=checkboxObje.value.split(","); if(aaa.length==1){ checkboxObje.value=""; } alert(checkboxObje.value); } } </script> </head> <body> <div class="belowcolor_1" ><img src="/survey/image/header.gif"/></div> <div class="belowcolor_2"><span class="blue12">说明信息:</span></div> <div class="belowcolor_3">问卷预览</div><br><br> <span id="errorSpan" style="color:red"></span> <br> <form id="" name="" onsubmit="return true;" action="" method="post"> <input type="hidden" name="submitStr1" value="" id="submitStr1"/> <input type="hidden" name="submitStr2" value="" id="submitStr2"/> <input type="hidden" name="submitStr3" value="" id="submitStr3"/> <table width="96%" height="100px" cellpadding=2 cellspacing=1 id="tableSearch" border="0" > <tr class="row0"> <td width="15%">&nbsp;&nbsp;</td> <td style="align:'center';valign:'center'" width="100%"> <h1 ><b>一天天天一切从实际出发</b></h1> </td> <td width="15%">&nbsp;&nbsp;</td> </tr> <tr> <td>&nbsp;&nbsp;</td> <td> <div> <div>一、 单选题 </div><br> 1、<font style="font-size:12px">false</font><br> <input type="hidden" name="radioValue" id="542" > <div> <INPUT TYPE="radio" NAME="542" id="550" onclick="addStr(this,'542','550')">&nbsp;&nbsp;12341234 </div> <br> <div> <INPUT TYPE="radio" NAME="542" id="551" onclick="addStr(this,'542','551')">&nbsp;&nbsp;12341234 </div> <br> <hr> </div> <div> 2、<font style="font-size:12px">123</font><br> <input type="hidden" name="radioValue" id="768" > <div> <INPUT TYPE="radio" NAME="768" id="769" onclick="addStr(this,'768','769')">&nbsp;&nbsp;123 </div> <br> <div> <INPUT TYPE="radio" NAME="768" id="768" onclick="addStr(this,'768','768')">&nbsp;&nbsp;123 </div> <br> <hr> </div> <div> 3、<font style="font-size:12px">111</font><br> <input type="hidden" name="radioValue" id="447" > <div> <INPUT TYPE="radio" NAME="447" id="963" onclick="addStr(this,'447','963')">&nbsp;&nbsp;231 </div> <br> <div> <INPUT TYPE="radio" NAME="447" id="961" onclick="addStr(this,'447','961')">&nbsp;&nbsp;123 </div> <br> <div> <INPUT TYPE="radio" NAME="447" id="962" onclick="addStr(this,'447','962')">&nbsp;&nbsp;321 </div> <br> <hr> </div> <div> 4、<font style="font-size:12px">@@@@@@@@@@@@@@@@@@@@@@@@11</font><br> <input type="hidden" name="radioValue" id="701" > <div> <INPUT TYPE="radio" NAME="701" id="688" onclick="addStr(this,'701','688')">&nbsp;&nbsp;222 </div> <br> <div> <INPUT TYPE="radio" NAME="701" id="689" onclick="addStr(this,'701','689')">&nbsp;&nbsp;433 </div> <br> <div> <INPUT TYPE="radio" NAME="701" id="687" onclick="addStr(this,'701','687')">&nbsp;&nbsp;111 </div> <br> <hr> </div> <div> <div>二、 多选题</div> <br> 1、<font style="font-size:12px">@@##!!@@##!!qq</font><br> <input type="hidden" name="checkboxValue" id="919" > <div><INPUT TYPE="checkbox" NAME="919" id="863" onclick="addStr(this,'919','863')">&nbsp;&nbsp;@@</div> <br> <div><INPUT TYPE="checkbox" NAME="919" id="864" onclick="addStr(this,'919','864')">&nbsp;&nbsp;##</div> <br> <hr> </div> <div> 2、<font style="font-size:12px">@@##!!@@##!!qq</font><br> <input type="hidden" name="checkboxValue" id="920" > <div><INPUT TYPE="checkbox" NAME="920" id="866" onclick="addStr(this,'920','866')">&nbsp;&nbsp;##</div> <br> <div><INPUT TYPE="checkbox" NAME="920" id="865" onclick="addStr(this,'920','865')">&nbsp;&nbsp;@@</div> <br> <hr> </div> <div> 3、<font style="font-size:12px">测试多多选</font><br> <input type="hidden" name="checkboxValue" id="745" > <div><INPUT TYPE="checkbox" NAME="745" id="721" onclick="addStr(this,'745','721')">&nbsp;&nbsp;1212</div> <br> <div><INPUT TYPE="checkbox" NAME="745" id="722" onclick="addStr(this,'745','722')">&nbsp;&nbsp;1212</div> <br> <div><INPUT TYPE="checkbox" NAME="745" id="723" onclick="addStr(this,'745','723')">&nbsp;&nbsp;1212</div> <br> <div><INPUT TYPE="checkbox" NAME="745" id="720" onclick="addStr(this,'745','720')">&nbsp;&nbsp;1212</div> <br> <hr> </div> <div> 4、<font style="font-size:12px">@@@</font><br> <input type="hidden" name="checkboxValue" id="961" > <div><INPUT TYPE="checkbox" NAME="961" id="942" onclick="addStr(this,'961','942')">&nbsp;&nbsp;12</div> <br> <div><INPUT TYPE="checkbox" NAME="961" id="944" onclick="addStr(this,'961','944')">&nbsp;&nbsp;12</div> <br> <div><INPUT TYPE="checkbox" NAME="961" id="941" onclick="addStr(this,'961','941')">&nbsp;&nbsp;12</div> <br> <div><INPUT TYPE="checkbox" NAME="961" id="943" onclick="addStr(this,'961','943')">&nbsp;&nbsp;12</div> <br> <hr> </div> <div> <div>三、 问答题</div> <br> 1、<font style="font-size:12px">`sz</font><br> <TEXTAREA ROWS="10" COLS="100" name="textareaValue" id="648"></TEXTAREA> <hr> </div> <div> 2、<font style="font-size:12px">dbdb</font><br> <TEXTAREA ROWS="10" COLS="100" name="textareaValue" id="941"></TEXTAREA> <hr> </div> <div> 3、<font style="font-size:12px">dbdb</font><br> <TEXTAREA ROWS="10" COLS="100" name="textareaValue" id="942"></TEXTAREA> <hr> </div> <div> 4、<font style="font-size:12px">新的题目</font><br> <TEXTAREA ROWS="10" COLS="100" name="textareaValue" id="614"></TEXTAREA> <hr> </div> </td> <td>&nbsp;&nbsp;</td> </tr> <tr> <td> <input class="typebutton" type="button" value="提交" onclick="check()"/>&nbsp;&nbsp;&nbsp;&nbsp; <input class="typebutton" type="button" value="返回" onclick="window.location='/survey/svSurveyAction!list.action'"> </td> </tr> </table> </form> </body> </html> [b]问题补充:[/b] 感谢 [color=blue][b]walnutprince (初级程序员)[/b][/color] 的提出的意见,我将会改正不好的编程习惯,标签中的用数字作ID 和NAME 只是没想到好的办法来解决,注释加上,变量命名修改了,下面是修改后的代码: <html> <head> <link rel="stylesheet" type="text/css" href="/survey/share/calendar/calendar.css"> <script type="text/javascript" src="/survey/share/calendar/calendar.js"></script> <script type="text/javascript" src="/survey/share/calendar/pageInclude.js"></script> <title>列表</title> <link rel="stylesheet" type="text/css" href="/survey/share/pageControl/pageControl.css" /> <link href="/survey/css/main.jsp" rel="stylesheet" type="text/css"/> <link href="/survey/css/list.jsp" rel="stylesheet" type="text/css"/> <script language="javascript" src="/survey/js/listPageJs.js"></script> <script language="javascript" src="/survey/js/string.js"></script> <script language="javascript"> function doSearch(){ document.getElementById("errorSpan").innerHTML = ""; var errorInfo = ""; if(errorInfo.length==0){ frmSearch.submit(); }else{ document.getElementById("errorSpan").innerHTML = errorInfo; } } function check(){ document.getElementById("errorSpan").innerHTML = ""; var errorInfo = ""; getRadioValue(); getCheckBoxValue(); getTextareaValue(); if(errorInfo.length==0){ alert(radValue); alert(chboxValue); alert(textValue); document.getElementById("submitStr1").value=radValue; document.getElementById("submitStr2").value=chboxValue; document.getElementById("submitStr3").value=textValue; radValue="",chboxValue="",textValue=""; //frmAction.submit(); }else{ document.getElementById("errorSpan").innerHTML = errorInfo; } } var radValue=""; // 用来保存单选题的数据 单选题信息 例:"题目1ID,选项*ID-题目1ID,选项*ID……-题目1ID,选项*ID" var chboxValue=""; // 用来保存复选题的数据 复选题的信息 "题目1ID,选项ID,选项ID,选项ID-题目1ID,选项*ID,选项ID,选项ID……-题目1ID,选项*ID,选项ID,选项ID" var textValue=""; // 用来保存问答题的数据 问答题的信息 "题目1ID,答案-题目1ID,答案……-题目1ID,答案" // 提交前加单选题的数据 function getRadioValue() { var arr=document.getElementsByName("radioValue"); for(i=0;i<arr.length;i++){ if(arr[i].value!=""){ if(radValue==""){ radValue+=arr[i].value; }else{ radValue=radValue+"-"+arr[i].value } } } } // 提交加工复选题的数据 function getCheckBoxValue() { var arr=document.getElementsByName("checkboxValue"); for(i=0;i<arr.length;i++){ if(arr[i].value!=""){ if(chboxValue==""){ chboxValue+=arr[i].value; }else{ chboxValue=chboxValue+"-"+arr[i].value; } } } } //提交前加工问答题的数据 function getTextareaValue() { var arr=document.getElementsByName("textareaValue"); for(i=0;i<arr.length;i++){ if(arr[i].value!=""){ if(textValue==""){ textValue+=arr[i].id+","+arr[i].value; }else{ textValue=textValue+"-"+arr[i].id+","+arr[i].value; } } } } function addStr (obj,questionId,optionId){ if(obj.type=="radio"){//单选题操作 var radioObj= document.getElementById(questionId); radioObj.value=questionId+","+optionId; } else if(obj.type=="checkbox"){ //复选题操作 var isChecked=true; //如果选中的项已被选中过为false,未选中过为true,默认为true var delBlackValue=""; //当取消选中的项时,删除该值后保存余下的数据 var checkboxObje=document.getElementById(questionId); var str= checkboxObje.value; if(str!=""&&str.length>0){//如果没有选择任何一项时进行() arr= str.split(","); for(j=0;j<arr.length;j++){ if(arr[j]==optionId){//如果取消选中项时,isCheckedm赋值为false表示曾经选中过,不执行下面的数据保存 isChecked=false; }else if(delBlackValue==""){ //delBlackValue为空时保存题目ID delBlackValue=arr[0]; }//end else if(obj.checked==false){//如果取消选中状态,去掉被取消的数据 if(arr[j]!=optionId){ isChecked=false; delBlackValue =delBlackValue+","+arr[j]; } }//end } if(obj.checked==false){ checkboxObje.value=delBlackValue; } }//end if(str==""&&str.length<1){ checkboxObje.value=questionId+","+optionId; }//end else if(str!=""&&str.length>1){ if(isChecked){ checkboxObje.value=checkboxObje.value+","+optionId; } }//end var aaa=checkboxObje.value.split(","); if(aaa.length==1){ checkboxObje.value=""; }//end alert(checkboxObje.value); } } </script> </head> <body> <div class="belowcolor_1" ><img src="/survey/image/header.gif"/></div> <div class="belowcolor_2"><span class="blue12">说明信息:</span></div> <div class="belowcolor_3">问卷预览</div><br><br> <span id="errorSpan" style="color:red"></span> <br> <form id="" name="" onsubmit="return true;" action="" method="post"> <input type="hidden" name="submitStr1" value="" id="submitStr1"/> <input type="hidden" name="submitStr2" value="" id="submitStr2"/> <input type="hidden" name="submitStr3" value="" id="submitStr3"/> <table width="96%" height="100px" cellpadding=2 cellspacing=1 id="tableSearch" border="0" > <tr class="row0"> <td width="15%">&nbsp;&nbsp;</td> <td style="align:'center';valign:'center'" width="100%"> <h1 ><b>一天天天一切从实际出发</b></h1> </td> <td width="15%">&nbsp;&nbsp;</td> </tr> <tr> <td>&nbsp;&nbsp;</td> <td> <div> <div>一、 单选题 </div><br> 1、<font style="font-size:12px">false</font><br> <input type="hidden" name="radioValue" id="542" value=""> <div> <INPUT TYPE="radio" NAME="542" id="550" onclick="addStr(this,'542','550')">&nbsp;&nbsp;12341234 </div> <br> <div> <INPUT TYPE="radio" NAME="542" id="551" onclick="addStr(this,'542','551')">&nbsp;&nbsp;12341234 </div> <br> <hr> </div> <div> 2、<font style="font-size:12px">123</font><br> <input type="hidden" name="radioValue" id="768" value=""> <div> <INPUT TYPE="radio" NAME="768" id="768" onclick="addStr(this,'768','768')">&nbsp;&nbsp;123 </div> <br> <div> <INPUT TYPE="radio" NAME="768" id="769" onclick="addStr(this,'768','769')">&nbsp;&nbsp;123 </div> <br> <hr> </div> <div> 3、<font style="font-size:12px">111</font><br> <input type="hidden" name="radioValue" id="447" value=""> <div> <INPUT TYPE="radio" NAME="447" id="962" onclick="addStr(this,'447','962')">&nbsp;&nbsp;321 </div> <br> <div> <INPUT TYPE="radio" NAME="447" id="961" onclick="addStr(this,'447','961')">&nbsp;&nbsp;123 </div> <br> <div> <INPUT TYPE="radio" NAME="447" id="963" onclick="addStr(this,'447','963')">&nbsp;&nbsp;231 </div> <br> <hr> </div> <div> 4、<font style="font-size:12px">@@@@@@@@@@@@@@@@@@@@@@@@11</font><br> <input type="hidden" name="radioValue" id="701" value=""> <div> <INPUT TYPE="radio" NAME="701" id="689" onclick="addStr(this,'701','689')">&nbsp;&nbsp;433 </div> <br> <div> <INPUT TYPE="radio" NAME="701" id="688" onclick="addStr(this,'701','688')">&nbsp;&nbsp;222 </div> <br> <div> <INPUT TYPE="radio" NAME="701" id="687" onclick="addStr(this,'701','687')">&nbsp;&nbsp;111 </div> <br> <hr> </div> <div> <div>二、 多选题</div> <br> 1、<font style="font-size:12px">@@##!!@@##!!qq</font><br> <input type="hidden" name="checkboxValue" id="919" value=""> <div><INPUT TYPE="checkbox" NAME="919" id="864" onclick="addStr(this,'919','864')">&nbsp;&nbsp;##</div> <br> <div><INPUT TYPE="checkbox" NAME="919" id="863" onclick="addStr(this,'919','863')">&nbsp;&nbsp;@@</div> <br> <hr> </div> <div> 2、<font style="font-size:12px">@@##!!@@##!!qq</font><br> <input type="hidden" name="checkboxValue" id="920" value=""> <div><INPUT TYPE="checkbox" NAME="920" id="866" onclick="addStr(this,'920','866')">&nbsp;&nbsp;##</div> <br> <div><INPUT TYPE="checkbox" NAME="920" id="865" onclick="addStr(this,'920','865')">&nbsp;&nbsp;@@</div> <br> <hr> </div> <div> 3、<font style="font-size:12px">测试多多选</font><br> <input type="hidden" name="checkboxValue" id="745" value=""> <div><INPUT TYPE="checkbox" NAME="745" id="721" onclick="addStr(this,'745','721')">&nbsp;&nbsp;1212</div> <br> <div><INPUT TYPE="checkbox" NAME="745" id="722" onclick="addStr(this,'745','722')">&nbsp;&nbsp;1212</div> <br> <div><INPUT TYPE="checkbox" NAME="745" id="723" onclick="addStr(this,'745','723')">&nbsp;&nbsp;1212</div> <br> <div><INPUT TYPE="checkbox" NAME="745" id="720" onclick="addStr(this,'745','720')">&nbsp;&nbsp;1212</div> <br> <hr> </div> <div> 4、<font style="font-size:12px">@@@</font><br> <input type="hidden" name="checkboxValue" id="961" value=""> <div><INPUT TYPE="checkbox" NAME="961" id="942" onclick="addStr(this,'961','942')">&nbsp;&nbsp;12</div> <br> <div><INPUT TYPE="checkbox" NAME="961" id="943" onclick="addStr(this,'961','943')">&nbsp;&nbsp;12</div> <br> <div><INPUT TYPE="checkbox" NAME="961" id="941" onclick="addStr(this,'961','941')">&nbsp;&nbsp;12</div> <br> <div><INPUT TYPE="checkbox" NAME="961" id="944" onclick="addStr(this,'961','944')">&nbsp;&nbsp;12</div> <br> <hr> </div> <div> <div>三、 问答题</div> <br> 1、<font style="font-size:12px">`sz</font><br> <TEXTAREA ROWS="10" COLS="100" name="textareaValue" id="648"></TEXTAREA> <hr> </div> <div> 2、<font style="font-size:12px">dbdb</font><br> <TEXTAREA ROWS="10" COLS="100" name="textareaValue" id="941"></TEXTAREA> <hr> </div> <div> 3、<font style="font-size:12px">dbdb</font><br> <TEXTAREA ROWS="10" COLS="100" name="textareaValue" id="942"></TEXTAREA> <hr> </div> <div> 4、<font style="font-size:12px">新的题目</font><br> <TEXTAREA ROWS="10" COLS="100" name="textareaValue" id="614"></TEXTAREA> <hr> </div> </td> <td>&nbsp;&nbsp;</td> </tr> <tr> <td> <input class="typebutton" type="button" value="提交" onclick="check()"/>&nbsp;&nbsp;&nbsp;&nbsp; <input class="typebutton" type="button" value="返回" onclick="window.location='/survey/svSurveyAction!list.action'"> </td> </tr> </table> </form> </body> </html>

bootstraptable-edit使用问题

![图片说明](https://img-ask.csdn.net/upload/201908/06/1565077495_685813.png) 外部的表格无法获取数据,检查contentType属性配置问题。 ``` $(function() { //初始化Table var oTable = new TableInit(); oTable.Init(); }); var TableInit = function() { var oTableInit = new Object(); //初始化Table oTableInit.Init = function() { $('#table').bootstrapTable({ url : 'list',//请求后台的URL(*) method : 'post',//请求方式(*) toolbar : '#toolbar',//工具按钮用哪个容器 striped : true,//是否显示行间隔色 cache : false,//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination : true,//是否显示分页(*) sortable : false,//是否启用排序 sortOrder : "asc",//排序方式 queryParams : oTableInit.queryParams,//传递参数(*) sidePagination : "server",//分页方式:client客户端分页,server服务端分页(*) pageNumber : 1,//初始化加载第一页,默认第一页 pageSize : 10,//每页的记录行数(*) pageList : [ 10, 25, 50, 100 ],//可供选择的每页的行数(*) search : true,//是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大 contentType : "application/x-www-form-urlencoded", strictSearch : true, showColumns : true,//是否显示所有的列 showRefresh : true,//是否显示刷新按钮 minimumCountColumns : 2,//最少允许的列数 clickToSelect : true,//是否启用点击选中行 height : 700,//行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度 uniqueId : "id",//每一行的唯一标识,一般为主键列 showToggle : true,//是否显示详细视图和列表视图的切换按钮 cardView : false,//是否显示详细视图 detailView : false,//是否显示父子表 columns : [ { field : 'id', title : '编号' }, { field : 'name', title : '名字' }, { field : 'price', title : '价格' }, { field : 'operate', title : '操作', formatter : operateFormatter //自定义方法,添加操作按钮 }, ], rowStyle : function(row, index) { var classesArr = [ 'white', 'lightblue' ]; var strclass = ""; if (index % 2 === 0) {//偶数行 strclass = classesArr[0]; } else {//奇数行 strclass = classesArr[1]; } return { classes : strclass }; },//隔行变色 }); }; //得到查询的参数 oTableInit.queryParams = function(params) { var temp = {//这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的 limit : params.limit,//页面大小 //pageNumber: params.pageNumber,//页码 offset : params.offset }; return temp; }; return oTableInit; }; function operateFormatter(value, row, index) {//赋予的参数 return [ '<a href="#" style="color:blue;" οnclick="edit(' + row.id + ')">编辑</a>|', '<a href="#" style="color:red;" οnclick="del(' + row.id + ')">删除</a>', ].join(''); } ``` table-edit.js ``` (function($){ 'use strict'; $.extend($.fn.bootstrapTable.defaults, { editable: false }); var BootstrapTable = $.fn.bootstrapTable.Constructor, _init = BootstrapTable.prototype.init, _initBody = BootstrapTable.prototype.initBody, _onSort = BootstrapTable.prototype.onSort, _append = BootstrapTable.prototype.append, _initHeader = BootstrapTable.prototype.initHeader ; //添加编辑表格默认属性,如何edit设置为false时,表示该列不可编辑 $.extend(true,BootstrapTable.COLUMN_DEFAULTS,{ edit:{ type:'text'//目前只支持 文本:text 下拉:select 日期:date } }); BootstrapTable.prototype.init = function () { _init.apply(this, Array.prototype.slice.apply(arguments)); var that = this; that.prevEditRow = null;//上一次编辑的行 that.columns = {};//列配置信息 that.insertRowVal = {};//新插入行的默认值 that.enableAppend = true;//允许添加新行 if (that.options.editable) { var columnObj = this['getColumns'](); $.each(columnObj,function(i,obj){ $.each(obj,function(z,col){ if(!isNaN(col.fieldIndex) && col.fieldIndex >= 0){ if(col.checkbox)col.edit = false; that.columns['column'+col.fieldIndex] = col; that.insertRowVal[col.field] = ''; } }); }); //this.initEdit(); } }; /*BootstrapTable.prototype.initHeader = function(){ _initHeader.apply(this, Array.prototype.slice.apply(arguments)); this.$container.find('.fixed-table-header').addClass('success'); };*/ BootstrapTable.prototype.initBody = function () { var that = this; _initBody.apply(this, Array.prototype.slice.apply(arguments)); if (!that.options.editable) return; this.initEdit(); //如果列是下拉框,则转换值为对应的文本 $.each(that.columns,function(indx,col){ if(col.edit && col.edit.type == 'select'){ col.edit = $.extend({},$.fn.bootstrapSelect.defaults,col.edit); if(col.edit.data.length > 0){ that.$body.find('>tr').each(function(){ if(that.getData().length < 1)return true; var rowData = that.data[$(this).data('index')];//当前点击td所在行的数据 var $td = $(this).find('td').eq(col.fieldIndex); $.each(col.edit.data,function(i,data){ if(data[col.edit.valueField] == rowData[col.field]){ $td.html(data[col.edit.textField]); } }); }); } else if(col.edit.url){ $.ajax({ url:col.edit.url, type:'post', data:col.edit.paramsType == 'json' ? JSON.stringify(col.edit.params) : col.edit.params, dataType:'json', success: function(jsonLst) { col.edit.onLoadSuccess.call(this,jsonLst); that.$body.find('>tr').each(function(){ if(that.getData().length < 1)return true; var rowData = that.data[$(this).data('index')];//当前点击td所在行的数据 var $td = $(this).find('td').eq(col.fieldIndex); $.each(jsonLst,function(i,data){ if(data[col.edit.valueField] == rowData[col.field]){ $td.html(data[col.edit.textField]); } }); }); col.edit.data = jsonLst; col.edit.url = null; }, error: function(xhr, textStatus, errorThrown){ col.edit.onLoadError.call(this); col.edit.data = []; col.edit.url = null; throw col.field+' 列下拉框数据加载失败'; } }); } } }); }; //根据行号删除指定行 BootstrapTable.prototype.removeRow = function (rowNum) { var that = this; var len = that.options.data.length; if (isNaN(rowNum)){ return; } if(that.$body.find('.editable-select').data('index') != rowNum){ recover(that); } //删除数据 that.options.data.splice(rowNum,1); if (len === that.options.data.length){ return; } var oldClass = {};//保存被标记修改的样式 that.$body.find('>tr').each(function(indx){ if($(this).hasClass('editable-modify')){ if(indx > rowNum){ oldClass[indx-1] = 'editable-modify'; } else{ oldClass[indx] = 'editable-modify'; } } }); //this.prevEditRow = null; //this.$body.find('>tr').removeClass('editable-select'); that.initBody(); //将标记改变过行的样式从新设置回去 for(var key in oldClass){ that.$body.find('>tr').eq(key).addClass(oldClass[key]); } //this.initEdit(); //没有数据时给提示加上样式 if(that.getData().length < 1){ that.$body.find('>tr').addClass('no-records-found'); } }; BootstrapTable.prototype.append = function (){ var that = this; //if(!that.enableAppend)return; var oldClass = {};//保存被标记修改的样式 that.$body.find('>tr').each(function(indx){ if($(this).hasClass('editable-modify') || $(this).hasClass('editable-insert')){ oldClass[indx] = 'editable-modify'; } }); arguments[0] = $.extend({},that.insertRowVal,arguments[0]); _append.apply(this,Array.prototype.slice.apply(arguments)); if (that.options.editable){ //that.initEdit(); setTimeout(function (){ //将标记改变过行的样式从新设置回去 for(var key in oldClass){ that.$body.find('>tr').eq(key).addClass(oldClass[key]); } that.$body.find('>tr:last').addClass('editable-modify'); that.$body.find('>tr:last').addClass('editable-insert');//双重保险,防止在快速点击添加时,为给新增行设置editable-modify属性 that.$body.find('>tr:last').click(); },60); } }; BootstrapTable.prototype.onSort = function () { _onSort.apply(this, Array.prototype.slice.apply(arguments)); var that = this; if (that.options.editable) { this.initEdit(); } }; BootstrapTable.prototype.getData = function () { return (this.searchText || this.searchCallback) ? this.data : this.options.data; }; BootstrapTable.prototype.getColumns = function () { return this.options.columns; }; /** * 获取有被修改过行的值 */ BootstrapTable.prototype.getModiDatas = function (){ var that = this; var datas = []; that.$body.find('.editable-modify').each(function(){ if(that.data[$(this).data('index')]){ datas.push(that.data[$(this).data('index')]); } }); return datas; }; /** * 获取指定列的和,参数为列下标 */ BootstrapTable.prototype.getColTotal = function (num){ var retVal = 0; this.$body.find('>tr').each(function(){ var colNum = 0; if($(this).hasClass('editable-select')){ colNum = $(this).find('td').eq(num).find('input').val(); } else{ colNum = $(this).find('td').eq(num).html(); } if(!isNaN(colNum)){//是数字才做想加 retVal += Number(colNum); } }); return retVal; }; /** * 创建可编辑表格 */ BootstrapTable.prototype.initEdit = function(){ var that = this, data = this.getData(); //this.$body.find('> tr').unbind('click').on('click' //this.$body.delegate('>tr','click' this.$body.find('> tr').unbind('click').on('click',function(){ var $tr = $(this); if($tr.hasClass('editable-select') || data.length < 1 || $tr.hasClass('no-records-found')){ return; } $tr.removeClass('no-records-found'); recover(that); that.prevEditRow = $tr; $tr.addClass('editable-select');//给当前编辑行添加样式,目前样式为空只做标识使用 that.$body.find('> tr').not(this).removeClass('editable-select'); $tr.find('td').closest('td').siblings().html(function(i,html){ initTrClick(that,this); }); }); //鼠标点击事件 $(document).bind('mousedown',function(event){ var $target = $(event.target); if(!($target.parents().andSelf().is(that.$body)) && !($target.parents().andSelf().is($('.datetimepicker')))){ setTimeout(function () { recover(that); //that.prevEditRow = null; //that.$body.find('> tr').removeClass('editable-select'); },10); }; }); }; $.fn.bootstrapTable.methods.push('getColumns', 'getModiDatas','removeRow','getColTotal'); /** * 给tr添加点击事件 */ function initTrClick(that,_this){ that.enableAppend = true; var $td = $(_this); var $tr = $td.parent(); var rowData = that.data[$tr.data('index')];//当前点击td所在行的数据 var tdIndex = $tr.children().index($td);//当前点击的td下标 var tdOpt = that.columns['column'+tdIndex]; if(!tdOpt.edit || typeof tdOpt.edit != 'object'){ return ; } $td.data('field',tdOpt.field); if(!$td.data('oldVal')){ $td.data('oldVal',$.trim(rowData[tdOpt.field])); } var height = $td.innerHeight() - 3; var width = $td.innerWidth() - 2; $td.data('style',$td.attr('style'));//保存原来的样式 $td.attr('style','margin:0px;padding:1px!important;'); var placeholder = ''; if(tdOpt.edit.required == true){ placeholder = '必填项'; } var value = rowData[tdOpt.field] == null || rowData[tdOpt.field] == ''?'':rowData[tdOpt.field]; $td.html('<div style="margin:0;padding:0;overflow:hidden;border:solid 0px red;height:'+(height)+'px;width:'+(width)+'px;">' +'<input type="text" placeholder="'+placeholder+'" value="'+value+'" style="margin-left: 0px; margin-right: 0px; padding-top: 1px; padding-bottom: 1px; width:100%;height:100%">' +'</div>'); $td.width(width); var $input = $td.find('input'); if(!tdOpt.edit.type || tdOpt.edit.type == 'text'){ if(tdOpt.edit['click'] && typeof tdOpt.edit['click'] === 'function'){ $input.unbind('click').bind('click',function(event){ tdOpt.edit['click'].call(this,event); }); } if(tdOpt.edit['focus'] && typeof tdOpt.edit['focus'] === 'function'){ $input.unbind('focus').bind('focus',function(event){ tdOpt.edit['focus'].call(this,event); }); } $input.unbind('blur').on('blur',function(event){ if(tdOpt.edit['blur'] && typeof tdOpt.edit['blur'] === 'function'){ tdOpt.edit['blur'].call(this,event); } }); } else if(tdOpt.edit.type == 'select'){ $input.bootstrapSelect(tdOpt.edit); } else if(tdOpt.edit.type == 'date'){ $td.html('<div style="margin:0;padding:0;overflow:hidden;border:solid 0px red;height:'+(height)+'px;width:'+(width)+'px;" class="input-group date form_datetime" data-link-field="dtp_editable_input">' +'<input class="form-control" type="text" value="'+value+'">' +'<span class="input-group-addon"><span class="glyphicon glyphicon-th"></span></span>' +'</div>' +'<input type="hidden" id="dtp_editable_input" value="'+value+'"/>' ); that.$body.find('.form_datetime').datetimepicker({ weekStart: 1, todayBtn: 1, autoclose: 1, todayHighlight: 1, startView: 2, forceParse: 0, language:'zh-CN', format: 'yyyy-mm-dd hh:ii:ss', pickerPosition: 'bottom-left', showMeridian: 1 }); } } /** * 恢复tr,使之处于不可编辑状态 */ function recover(that){ var isModi = false;//判断行值是否变动过 if(that.prevEditRow != null){ that.prevEditRow.find('td').closest('td').siblings().html(function(i,html){ $(this).attr('style',$(this).data('style')); var textVal = $(this).find('input[type="text"]').val(); var hiddenVal = $(this).find('input[type="hidden"]').val(); if(typeof $(this).find('input[type="text"]').bootstrapSelect('getText') != 'object'){ $(this).find('input[type="text"]').bootstrapSelect('destroy'); } if(textVal != undefined){ if($(this).data('oldVal') != (hiddenVal?hiddenVal:$.trim(textVal)) && $(this).data('field')) { that.data[that.prevEditRow.data('index')][$(this).data('field')] = hiddenVal?hiddenVal:$.trim(textVal); isModi = true; } if(that.columns['column'+i].edit.required == true){ if(textVal == null || textVal == ''){ that.enableAppend = false; return '<span style="color:red;">必填项不能为空</span>'; } } return $.trim(textVal); } }); //新值跟旧值不匹配证明被改过 if(isModi || that.prevEditRow.hasClass('editable-insert')){ that.prevEditRow.addClass('editable-modify'); } else{ that.prevEditRow.removeClass('editable-modify'); } that.prevEditRow = null; that.$body.find('> tr').removeClass('editable-select'); } } })(jQuery); ``` 哪位大神能帮忙解决下

datagrid 表中的 怎么去限制俩个datetimebox 的大小

表结构<br/>![图片说明](https://img-ask.csdn.net/upload/201610/07/1475825320_194509.png) 我想让datetimebox A 如果选择了 2016-8-8 那么 datetimebox B就不能进行选 8-8之前的日期了 只能比它大,反之亦然,A不能比B大! 表格代码是这样的 <br/> html部分 ``` <table id="dg" rownumbers="true" class="easyui-datagrid" style="width:100%;height:auto;" data-options="onEndEdit:onEndEdit,onLoadSuccess:compute"> <thead> <tr> <th data-options="field:'ck',width:100,checkbox:true"></th> <th data-options="field:'dept_id',width:100,formatter:function(value,row){return row.dept_name; },editor:{ type:'combobox',options:{ valueField:'dept_id', textField:'dept_name',method:'get',url:'{$json}', } }">开单部门</th> <th data-options="field:'to_dept',width:100, formatter:function(value,row){ return row.todeptname;},editor:{ type:'combobox',options:{ valueField:'dept_id', textField:'todeptname',url:'{$json2}', editable:false }}">目标分店</th> <th data-options="field:'so_date',width:160,editor:{type:'datetimebox',options:{editable:false,}}">发生日期</th> <th data-options="field:'income',width:100,editor:{type:'numberbox',options:{}},formatter:function(value,row,index){ return formatNumber(value,2); }">借</th> <th data-options="field:'pay',width:100,editor:{type:'numberbox',options:{}}, formatter:function(value,row,index){ return formatNumber(value,2);}">贷</th> <th data-options="field:'record_date',width:160,editor:{type:'datetimebox',options:{editable:false}}">审核日期</th> </tr> </thead> </table> ``` JS部分 ``` <script> $(document).ready(function(){ var datagrid; //定义全局变量datagrid var editRow1 = undefined; //定义全局变量:当前编辑的行 datagrid1 = $("#dg").datagrid({ url:'{$recURL}', //请求的数据源 iconCls: 'icon-save', //图标 fit: false, //datagrid自适应宽度 fitColumn: false, //列自适应宽度 striped: true, //行背景交换 nowrap: true, //列内容多时自动折至第二行 border: false, idField: 'dept_id', //主键 //queryParams: { action: 'query' }, //查询参数 toolbar: [{ text: '添加一行', iconCls: 'icon-add', handler: function () { if (editRow1 != undefined) { datagrid1.datagrid("endEdit", editRow1); } if (editRow1 == undefined) { datagrid1.datagrid("insertRow", { index: 0, // index start with 0 row: { } }); //将新插入的那一行开户编辑状态 datagrid1.datagrid("beginEdit", 0); var insert_c= $('#dg').datagrid("getChanges",'updated'); var dg = $('#dg').datagrid('getEditor', { index: 0, field: 'dept_id' }); $(dg.target).combobox('select',"001"); //给当前编辑的行赋值 editRow1 = 0; } } }, '-', { text: '删除选中', iconCls: 'icon-remove', handler: function () { //删除时先获取选择行 var rows = datagrid1.datagrid("getSelections"); //选择要删除的行 if (rows.length > 0) { $.messager.confirm("提示", "你确定要删除吗?", function (r) { if (r) { var ids = []; var row = []; for (var i = 0; i < rows.length; i++) { var rowIndex = $('#dg').datagrid('getRowIndex', rows[i]);//获取指定行 row[i]=rowIndex; ids.push(rows[i].dept_id); } if($('#dg').datagrid('getRows').length==row.length){ editRow1 = undefined; datagrid1.datagrid("rejectChanges"); $.messager.alert("提示","删除成功","info"); }else{ for(var i=0;i<row.length;i++){ $('#dg').datagrid('deleteRow', row[i]); //删除指定行 } }//将选择到的行存入数组并用,分隔转换成字符串, } }); } else { $.messager.alert("提示", "请选择要删除的行","error"); } } }, '-', { text: '修改选中', iconCls: 'icon-edit', handler: function () { //修改时要获取选择到的行 var rows = datagrid1.datagrid("getSelections"); //如果只选择了一行则可以进行修改,否则不操作 if (rows.length == 1) { //修改之前先关闭已经开启的编辑行,当调用endEdit该方法时会触发onAfterEdit事件 if (editRow1 != undefined) { datagrid1.datagrid("endEdit", editRow1); } //当无编辑行时 if (editRow1 == undefined) { //获取到当前选择行的下标 var index = datagrid.datagrid("getRowIndex", rows[0]); //开启编辑 datagrid1.datagrid("beginEdit", index); //把当前开启编辑的行赋值给全局变量editRow1 editRow1 = index; datagrid1.datagrid("unselectAll"); } }else { $.messager.alert('警告', '修改必须或只能选择一行!', 'warning'); } } }, '-', { text: '保存', iconCls: 'icon-save', handler: function () { //保存时结束当前编辑的行,自动触发onAfterEdit事件如果要与后台交互可将数据通过Ajax提交后台 datagrid1.datagrid("endEdit", editRow1); } }, '-' , {text: '设置视图', handler: function (){ var s=$(this).parents("fieldset").find(".datagrid-header"); set_view(s); } },'-'], onAfterEdit: function (rowIndex, rowData, changes) { //endEdit该方法触发此事件 //console.info(rowData); editRow1 = undefined; compute(); }, onDblClickRow: function (rowIndex, rowData) { //双击开启编辑行 var cx; var insert_c= $('#dg').datagrid("getChanges",'inserted'); for(var i=0;i<insert_c.length;i++){ var row_l=$('#dg').datagrid("getRowIndex",insert_c[i]); if(rowIndex==row_l){ cx=true; } } if (editRow1 != undefined) { datagrid1.datagrid("endEdit", editRow1); } if (editRow1 == undefined) { var rows = $('#dg').datagrid('getRows'); if(cx){ datagrid1.datagrid("beginEdit", rowIndex); editRow1 = rowIndex; cx=false; }else{ datagrid1.datagrid("beginEdit", rowIndex); editRow1 = rowIndex; var dd = $('#dg').datagrid('getEditor', { index: rowIndex, field: 'dept_id' }); $(dd.target).combobox('disable'); } } } }); //编辑状态 function endEditing1() { if (editRow1 == undefined) { return true } if ($('#dg').datagrid('validateRow', editRow1)) { var ed = $('#dg').datagrid('getEditor', { index: editRow1, field: 'dept_id' }); $('#dg').datagrid('endEdit', editRow1); editRow = undefined; return true; } else { return false; } } }); function onEndEdit(index, row){ var ed = $('#dg').datagrid('getEditor', { index: index, field: 'dept_id' }); row.dept_name = $(ed.target).combobox('getText'); var ed1 = $('#dg').datagrid('getEditor', { index: index, field: 'to_dept' }); row.todeptname = $(ed1.target).combobox('getText'); } function compute(){ var rows = $('#dg').datagrid('getRows')//获取当前的数据行 var ptotal = 0//计算listprice的总和 ,utotal = 0//统计unitcost的总和 ,table = 0; for (var i = 0; i < rows.length; i++) { ptotal += parseFloat(rows[i]['income']) || 0 ; utotal += parseFloat(rows[i]['pay']) || 0 ; } table = ptotal - utotal; document.getElementById('payin').innerText=ptotal.toFixed(2).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');//输出位置 document.getElementById("payout").innerText=utotal.toFixed(2).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,'); document.getElementById('payincome').innerText=table.toFixed(2).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,'); } function formatNumber(value, fixed) { var number = Number(value); return number.toFixed(2).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,'); }</script> ``` 因为他的是easyui组件,我不知道怎么去实现 这个需求

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

再不跳槽,应届毕业生拿的都比我多了!

跳槽几乎是每个人职业生涯的一部分,很多HR说“三年两跳”已经是一个跳槽频繁与否的阈值了,可为什么市面上有很多程序员不到一年就跳槽呢?他们不担心影响履历吗? PayScale之前发布的**《员工最短任期公司排行榜》中,两家码农大厂Amazon和Google**,以1年和1.1年的员工任期中位数分列第二、第四名。 PayScale:员工最短任期公司排行榜 意外的是,任期中位数极小的这两家公司,薪资...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

数据库——玩转SQL语句(以MySQL为例)

一、前言 照着大学的SQL server来学

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

华为初面+综合面试(Java技术面)附上面试题

华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

程序员写出这样的代码,能不挨骂吗?

当你换槽填坑时,面对一个新的环境。能够快速熟练,上手实现业务需求是关键。但是,哪些因素会影响你快速上手呢?是原有代码写的不够好?还是注释写的不够好?昨夜...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

程序员毕业去大公司好还是小公司好?

虽然大公司并不是人人都能进,但我仍建议还未毕业的同学,尽力地通过校招向大公司挤,但凡挤进去,你这一生会容易很多。 大公司哪里好?没能进大公司怎么办?答案都在这里了,记得帮我点赞哦。 目录: 技术氛围 内部晋升与跳槽 啥也没学会,公司倒闭了? 不同的人脉圈,注定会有不同的结果 没能去大厂怎么办? 一、技术氛围 纵观整个程序员技术领域,哪个在行业有所名气的大牛,不是在大厂? 而且众所...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

01、Java入门(Getting Started);02、集成开发环境(IDE);03、项目结构(Eclipse JavaProject);04、类和对象(Classes and Objects);05:词法结构(Lexical Structure);06:数据类型和变量(Data Type and Variables);07:运算符(Operators);08:控制流程语句(Control Flow Statements);

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

2020春招面试了10多家大厂,我把问烂了的数据库事务知识点总结了一下

2020年截止目前,我面试了阿里巴巴、腾讯、美团、拼多多、京东、快手等互联网大厂。我发现数据库事务在面试中出现的次数非常多。

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

立即提问
相关内容推荐