form-json-url传参

原创 2015年11月20日 19:51:09

最近的没有更博客,因为跟了一个项目,才发现自己的知识量远远不足,做项目到现在,收获的也知识learn more learn fast的决心。

今天在做前端表单部分发现了一些很懒的代码,mark下来。


关于:js里获取form转换为json,通过ajax url传到servlet

首先说明的是,url里面不能有对象,所以json对象要变成字符串放在url。


代码html 

<span style="white-space:pre">	</span><form id="stdMsg">
		<table>
			<tr>
				<td>
					<label for="name">学生姓名:</label> 
					<input name="studentname" onblur="hintname()" id="newName" onBlur="hintname()"/>
				</td> 
			</tr> 
			<tr> 
				<td> 
					<label for="sex">性别:
					</label> <input checked="true" type="radio" name="sex" value="男">女生<input type="radio" name="sex" value="女"> 
				</td> 
			</tr> 
			<tr> 
				<td> 
					<label for="team">小队:</label>
					<select name="team" id="newTeam">
						<option value="1">1</option>
						<option value="2">2</option>
					</select>
				</td>
			</tr> 
			<tr> 
				<td> 
					<button onclick="addStudent()">
						提交
					</button>
				</td> 
			</tr>
		</table>
	</form>





代码 js

var data = $("#stdMsg").serializeArray(); //自动将form表单封装成json  
JSON.stringify(data);

这种方法,可以轻松接收form表单的数据,但是转换的json会是这样的:


[ 
  {name: 'studentname', value: '张三'}, 
  {name: 'sex', value: '男'},
  {name: 'team', value: '1'},
]

那么不利于传到servlet后的解析。

所以有更好的方法:


$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

JSON.stringify($("#form").serializeObject());

var data = $("#stdMsg").serializeArray();

这种方法会吧上面的json里面的name属性和value属性去掉,直接变成 "sex":"男"的样式。


但是servlet后面的dal会提示你json要以[开头,]结束,所以,在ajax的url传参,我们应该


url: "MyServlet?method=addStudent&json=[" + JSON.stringify(data) +"]", 

恩,就是这样。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

drupal7 创建form表单 并重定向提交路径同时使用get方式传递(drupal 简洁url)传参实例演示

1、 指定创建form的函数,并传递参数 $formhtml = drupal_render(drupal_get_form('create_form', 'get_name',a,b,c)); ...

通过URL传参和通过json传参后台实例

private static final String UPDATERULESTATUS = "{\"status\":\"1\"}"; @ApiOperation(value = "修改有效规则状...

form传值freemest结果targe定位struts分页action传参

这几天做SSH框架整合开发;由于Spring强大的整合能力,Hibernate的数据持久层已经非常简化。整个系统做下来感觉吃力的地方还是前台struts标签的地方。 对JSP数据传值理解有了进一步提...

SpringBoot Web项目的参数绑定:URL传参及默认参数设置

一、@RequestParam 这个注解用来绑定单个请求数据,既可以是url中的参数,也可以是表单提交的参数和上传的文件 它有三个属性,value用于设置参数名,defaultValue用于对参数...

润乾报表URL传参捕获不成功的BUG解决方案

这几天遇到一个这样的问题。 A.JSP里有一段URL入参 url=…….jsp?dealerInfoId=***&arg=***, B.JSP里代码段request.getParamete...

解决URL路径、传参乱码

【解决URL路径编码乱码】         @Test       public void test() throws Exception {            String text =...

js的url传参中文乱码问题

方法一:在后台接收参数的时候设置解码方式 advicetype =new String(advicetype.getBytes("iso-8859-1"),"UTF-8");参数为advicetyp...

JavaScript 操作url向另一个页面传参

正文 如何从页面1中向页面2传入一张图片的路径呢? 1 . 在页面1,通过点击,跳转到页面2,//$('#aa').click()即为给id名为aa的元素添加点击事件 $('#aa').click(...

.net 模拟GET或者POST请求 传参URL和获取返回值

简单GET请求:string url = "http://i******com.cn/fcps-uat/rest/eip/eipNotice?inputJson=";                 ...
  • wybshyy
  • wybshyy
  • 2016年07月29日 14:08
  • 864
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:form-json-url传参
举报原因:
原因补充:

(最多只允许输入30个字)