1.JavaScript提交表单数据(包括数组),复选框问题 2.JavaScript+c标签遍历ajax数据与request作用域数据
2018-12-23 16:48
441 查看
1.
需求:添加一个学生(Student)
问题:学生标签复选框为多选,但在获取复选框值的时候,传输的数据只是最后一个选中的复选框的value值
解决方法:JavaScript手动提交表单
entity
@Data @AllArgsConstructor @NoArgsConstructor @Table(name = "cm_student") public class Student { private String id; private String name; private Integer age; private String remark; //描述 private Group group; //组别 private City city; //毕业城市 private Clazz clazz; //班级 private List<Label> labels; //学生标签 }
JSP
<form action="${pageContext.request.contextPath}/XXX" method="post"> 学生名称:<input type="text" name="name"/><br/> 学生年龄:<input type="text" name="age"/><br/> 学生班级: <select id="class" name="clazz.id" onchange="gr()"> </select><br/> 学生分组: <select id="group" name="group.id"> </select><br/> 学生就业城市: <select id="city" name="city.id"> </select><br/> 学生标签: <yy id="label"> <input type="checkbox" value="XXX">学霸 <input type="checkbox" value="XXX">学神 <in 2c823 put type="checkbox" value="XXX">学渣 </yy><<br> 学生备注: <textarea name="remark" style="width:288px;height:172px;"> </textarea><br/> <input type="button" value="提交" onclick="sub()"/> <input type="button" value="返回上级" onclick="history.go(-1);"/> </form>
JavaScript
- 获取选中的复选框,创建一个数组存放选中复选框的value属性
- 获取form表单的数据
- 更改表单数据
- 提交表单
function sub() { var sel = $('input:checkbox:checked'); //获取复选框选中的标签对象 var ls = new Array(); //创建js数组对象ls var i=0; $.each(sel,function () { //遍历选中的复选框,取标签的value值放入数组ls中 ls[i]=$(this).val(); i++; }) var data = {}; var t = $('form').serializeArray(); //获取form表单中的数据,返回值为键值对数组 $.each(t, function() { //遍历数据数组,更改键 ls[] 对应的值 if(this.name=='ls[]'){ data ['ls[]'] = ls; }else { data [this.name] = this.value; } }); $.ajax({ url:"${pageContext.request.contextPath}/XXX", data:data, type:'post', success:function (d) { location.href="${pageContext.request.contextPath}/XXX"; } }) }
2
需求:做多个复选框回显
解决:使用for循环遍历ajax数据,嵌套c标签遍历request作用域的数据
$(function () { $.ajax({ url:'${pageContext.request.contextPath}/XXX', type:'post', dataType:'JSON', success:function (data) { for (var i=0;i<data.labels.length;i++){ var option = null; <c:forEach items="${requestScope.s.labels}" var="s"> if(data.labels[i].id=="${s.id}"){ option = $("<input type='checkbox' checked name='ls[]' value='"+data.labels[i].id+"'><ss>"+data.labels[i].name+"</ss>"); }else{ option = $("<input type='checkbox' name='ls[]' value='"+data.labels[i].id+"'><ss>"+data.labels[i].name+"</ss>"); } </c:forEach> $('#label').append(option); } } }) })
相关文章推荐
- <s:iterator>标签遍历动态数组<泛型>:ArrayList<对象>,怎样批量修改数据并一起提交到后台
- PHP Ajax,FormData收集表单数据(包括文件) 页面无刷新上传文件(提交表单)
- extJS提交form表单数据的方式: Ext.Ajax.request,form.submit,getEl().dom.submit()
- 使用javaScript解决asp.net中mvc使用ajax提交数组参数的匹配问题
- Javascript 表单验证对象控件 + ajax简单验证重复项与ajax提交数据
- 使用<a>标签提交表单数据的问题以及获取session作为函数的参数调用的问题
- 使用javaScript解决asp.net中mvc使用ajax提交数组参数的匹配问题
- spring mvc 数据绑定问题 提交表单提示HTTP status 400, The request sent by the client was syntactically incorrect
- 基于JavaScript实现带数据验证和复选框的表单提交
- 第一百五十九节,封装库--JavaScript,表单序列化结合ajax提交数据
- ajax(原生JavaScript)异步提交表单数据
- JavaScript语句中再包括JavaScript语句串也能同样执行了.可以解决AJAX返回后的数据检查问题
- 使用javaScript解决asp.net中mvc使用ajax提交数组参数的匹配问题
- 用ajax,将表单提交到后端,后端php向前端返回数组,前端通过jquery遍历
- js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题
- 解决AJAX表单用POST方式提交Checkbox复选框的问题
- 从零开始学_JavaScript_系列(七)——jquery(复选框及互斥、div块、修改css、标签数组、ajax连续加载)
- javascript中创建对象,并序列化为json,通过$.ajax的提交json数据到后台方法,取值为null的问题
- 一个用javascript编写的表单提交的例子(包括用正则表达式对数据进行验证)
- spring mvc 数据绑定问题 提交表单提示HTTP status 400, The request sent by the client was syntactically incorrect