`
johncon
  • 浏览: 27818 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
文章分类
社区版块
存档分类
最新评论

表单域与json数据间的交互

    博客分类:
  • json
阅读更多

找了几个javascript的框架,都没有找到我想要的:
提供函数,把某个表单的所有域封装成json数据格式的对象,唯有自己实现一个。

包括对象中有集合属性、对象中引用其他对象属性: 

 

/**
**json对象数据设置到表单域中
*/
function jsonObjectToForm(form, jsonObject){
	for(i = 0, max = form.elements.length; i < max; i++) {
		e = form.elements[i];
		eName = e.name;
		if(eName.indexOf('.') > 0){
			dotIndex = eName.indexOf('.');
			parentName = eName.substring(0, dotIndex);
			childName = eName.substring(dotIndex+1);
			//迭代判断eName,组装成json数据结构
			eValue = iterValueFromJsonObject(jsonObject, parentName, childName);
		}else{
			eValue = jsonObject[eName];
		}
		if(eValue && eValue != "undefined" && eValue != "null"){
			switch(e.type){
				case 'checkbox': 
				case 'radio': 
					if(e.value == eValue){
						e.checked = true;
					}
					break;
				case 'hidden': 
				case 'password': 
				case 'textarea':
				case 'text': 
					e.value = eValue;
					break;
				case 'select-one':
				case 'select-multiple':
					for(j = 0; j < e.options.length; j++){
						op = e.options[j];
						//alert("eName : " + eName + "; op value : " + op.value + "; eValue : " + eValue);
						if(op.value == eValue){
							op.selected = true;
						}
					}
					break;
				case 'button': 
				case 'file': 
				case 'image': 
				case 'reset': 
				case 'submit': 
				default:  
			}
		}
	}
}

/**
* json数组读写有两种方式
* 1: a.bs[0].id
* 2: a["bs"][0]["id"]
* 把表单转换成json数据格式
*/
function formToJsonObject(form){
	var jsonObject = {};
	for(i = 0, max = form.elements.length; i < max; i++) {
		e = form.elements[i];
		em = new Array();
		if(e.type == 'select-multiple'){
			for(j = 0; j < e.options.length; j++){
				op = e.options[j];
				if(op.selected){
					em[em.length] = op.value;
				}
			}
		}
		switch(e.type){
			case 'checkbox': 
			case 'radio': 
				if (!e.checked) { break; } 
			case 'hidden': 
			case 'password': 
			case 'select-one':
			case 'select-multiple':
			case 'textarea':
			case 'text': 
				eName = e.name;
				if(e.type == 'select-multiple'){
					eValue = em;
				}else{
					eValue = e.value.replace(new RegExp('(["\\\\])', 'g'), '\\$1');
				}
				//判断是否是对象类型数据
				if(eName.indexOf('.') > 0){
					dotIndex = eName.indexOf('.');
					parentName = eName.substring(0, dotIndex);
					childName = eName.substring(dotIndex+1);
					//迭代判断eName,组装成json数据结构
					iterJsonObject(jsonObject, parentName, childName, eValue);
				}else{
					jsonObject[eName] = eValue;
				}
				break; 
			case 'button': 
			case 'file': 
			case 'image': 
			case 'reset': 
			case 'submit': 
			default:  
		}
	}
	return jsonObject;
}

/**
* 把表单元素迭代转换成json数据
*/
function iterJsonObject(jsonObject, parentName, childName, eValue){
	//pArrayIndex用于判断元素是否是数组标示
	pArrayIndex = parentName.indexOf('[');
	//判断是否集合数据,不是则只是对象属性
	if(pArrayIndex < 0){
		var child = jsonObject[parentName];
		if(!child){
			jsonObject[parentName] = {};
		}
		dotIndex = childName.indexOf('.');
		if(dotIndex > 0){
			iterJsonObject(jsonObject[parentName], childName.substring(0, dotIndex), childName.substring(dotIndex+1), eValue);
		}else{
			jsonObject[parentName][childName] = eValue;
		}
	}else{
		pArray = jsonObject[parentName.substring(0, pArrayIndex)];
		//若不存在js数组,则初始化一个数组类型
		if(!pArray){
			jsonObject[parentName.substring(0, pArrayIndex)] = new Array();
		}
		//取得集合下标,并判断对应下标是否存在js对象
		arrayIndex = parentName.substring(pArrayIndex+1, parentName.length-1);
		var c = jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex];
		if(!c){
			jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex] = {};
		}
		dotIndex = childName.indexOf('.');
		if(dotIndex > 0){
			iterJsonObject(jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex], childName.substring(0, dotIndex), childName.substring(dotIndex+1), eValue);
		}else{
			jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex][childName] = eValue;
		}
	}
}

/**
* 迭代json数据对象设置到表单域中
*/
function iterValueFromJsonObject(jsonObject, parentName, childName){
	//pArrayIndex用于判断元素是否是数组标示
	pArrayIndex = parentName.indexOf('[');
	//判断是否集合数据,不是则只是对象属性
	if(pArrayIndex < 0){
		dotIndex = childName.indexOf('.');
		if(dotIndex > 0){
			return iterValueFromJsonObject(jsonObject[parentName], childName.substring(0, dotIndex), childName.substring(dotIndex+1));
		}else{
			return jsonObject[parentName][childName]
		}
	}else{
		pArray = jsonObject[parentName.substring(0, pArrayIndex)];
		//取得集合下标,并判断对应下标是否存在js对象
		arrayIndex = parentName.substring(pArrayIndex+1, parentName.length-1);
		var c = jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex];
		dotIndex = childName.indexOf('.');
		if(dotIndex > 0){
			return iterValueFromJsonObject(jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex], childName.substring(0, dotIndex), childName.substring(dotIndex+1));
		}else{
			return jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex][childName]
		}
	}
}

 

 

欢迎大家讨论,最近在研究jsp页面纯净,只与js有关,但这将导致rich client

 

so bad  不知道有什么好的建议没 

分享到:
评论
38 楼 czwlucky 2008-11-05  
没有用过DWR吗?它的util.js中有这样的方法,可以直接拿过来用.
37 楼 maximus.zhang 2008-11-03  
<p>json对象设置表单的:</p>
<pre name='code' class='js'>/**
* iselect$ 选定 值为v 的选择下拉菜单o 的下拉项。
*/
function iselect$(o,v){
if(o &amp;&amp; o.nodeName=="SELECT" &amp;&amp; !o.disabled){
o.selectedIndex=-1;
if(o.type=="select-one"){
for(var z=0,L=o.length;z&lt;L;z++){
if(o.options[z].value==v)
return o.selectedIndex=z;
}
}
else if(o.type=="select-multiple"){
if(!isArray(v))return false;
for(var z=0,L=o.length;z&lt;L;z++){
if(inArray(o.options[z].value,v))
o.options[z].selected=true;
}
}
}
}
function icheck$(o,v){
if(o.length){
for(var z=0,L=o.length;z&lt;L;z++){
if(o[z] &amp;&amp; o[z].nodeName=="INPUT" &amp;&amp; !o[z].disabled){
switch(o[z].type){
case 'radio':
if(o[z].value==v)return o[z].checked=true;
break;
case 'checkbox':
if(!isArray(v))return false;
if(inArray(o[z].value,v))
o[z].checked=true;
else
o[z].checked=false;
break;
}
}
}
}
else{
if(o&amp;&amp;o.nodeName=="INPUT"&amp;&amp;(o.type=="radio"||o.type=="checkbox") &amp;&amp; !o.disabled){
if(o.value==v)return o.checked=true;
else return o.checked=o.defaultChecked;
}
}
}

/**
* 将json对象的属性及其值设置表单
*/
function setform$(o,f,skip){
var f=typeof(f)=='string'?$(f):(typeof(f)=="object"&amp;&amp;f)?f:me.forms[0], skip=ext$({},skip);
if(!f||f.nodeName!=="FORM")return;
if(o&amp;&amp;typeof o=="object"){
var an=(typeof(skip.name)=='string')?skip.name.toLowerCase().split(','):isArray(skip.name)?skip.name:[],
ae=(typeof(skip.elem)=='string')?skip.elem.toUpperCase().split(','):isArray(skip.elem)?skip.elem:[],
at=(typeof(skip.type)=='string')?skip.type.toLowerCase().split(','):isArray(skip.type)?skip.type:[];
for(var z in o){
if(!inArray(z,an)&amp;&amp;(f.elements[z]||(isArray(o[z])&amp;&amp;f.elements[z+'[]']))){
var el=f.elements[z]?f.elements[z]:isArray(o[z])?f.elements[z+'[]']:null;
if(!el.length&amp;&amp;!el.disabled&amp;&amp;!inArray(el.nodeName,ae)){
switch(el.nodeName){
case 'INPUT':
if(!inArray(el.type,at)){
switch(el.type){
case 'text':
case 'hidden':
case 'password':
el.value=o[z];
break;
case 'radio':
case 'checkbox':
icheck$(el,o[z]);
break;
}
}
break;
case 'TEXTAREA':
el.innerHTML=o[z];
break;
}
}
else if(el.length&amp;&amp;!inArray(el.nodeName,ae)){
if(el.nodeName=='SELECT'&amp;&amp;!el.disabled)iselect$(el,o[z]);
else if(el[0].nodeName=='INPUT'){
if(!inArray(el.type,at)){
switch(el[0].type){
case 'text':
case 'hidden':
case 'password':
for(var x=0,J=el.length;x&lt;J;x++){
if(!el[x].disabled)
el[x].value=o[z][x]?o[z][x]:'';
}
break;
case 'radio':
case 'checkbox':
icheck$(el,o[z]);
break;
}
}
}
}
}
}
}
}</pre>
<p> </p>
<p>form对象转换为json数据格式的对象的应用偶是觉得这样在ajax取的send出数据之前可以比较容易扩展form的内容,把原本不在表单里的数据一起加入到转换后的对象里。</p>
<p>如用下面的函数来扩展或修改json对象。</p>
<pre name='code' class='js'>function ext$(o,O){
if('object'!=typeof(o)||'object'!=typeof(O)||!o||!O)return o;
for(var z in O){
o[z]=O[z];
}
return o;
}</pre>
 
36 楼 maximus.zhang 2008-11-03  
<p>今年初在做一个包含表单,列表,分页的ajax应用的时候写了个差不多功能的函数。</p>
<pre name='code' class='js'>/**
* 函数jsonF$ 将表单对象所包含的控件的内容转换成json对象。
* 参数1 为表单对象或表单对象的id;
* 参数2 为表单对象中要略过的控件,可为“控件name属性”,“控件元素名”,控件type
*/
function jsonF$(O,skip){/* skip={'name'|['name'],'elem'|['elem'],'type'|['type']} */
if(!O)return;
var O=typeof(O)=='string'?$(O):O, skip=ext$({},skip), o={};
if(typeof(O)=='object'){
if(!O.nodeName){return O;}
if(O.nodeName=='FORM'){
var an=(typeof(skip.name)=='string')?skip.name.toLowerCase().split(','):isArray(skip.name)?skip.name:[],
ae=(typeof(skip.elem)=='string')?skip.elem.toUpperCase().split(','):isArray(skip.elem)?skip.elem:[],
at=(typeof(skip.type)=='string')?skip.type.toLowerCase().split(','):isArray(skip.type)?skip.type:[];
for(var x=0,L=O.length;x&lt;L;x++){
if(!inArray(O[x].nodeName,ae)&amp;&amp; !O[x].disabled &amp;&amp;O[x].name&amp;&amp;O[x].name!=''&amp;&amp;!inArray(O[x].name.toLowerCase(),an)){
switch(O[x].nodeName){
case 'INPUT':
if(!inArray(O[x].type,at)){
switch(O[x].type){
case 'text':
case 'hidden':
case 'password':
if(/%5B%5D$|\[\]$/i.test(O[x].name)){
var N=O[x].name.replace(/%5B%5D$|\[\]$/i,'');
if(o.hasOwnProperty(N)){
o[N].push(O[x].value);
}else{
o[N]=[O[x].value];
}
}else{
o[O[x].name]=O[x].value;
}
break;
case 'radio':
case 'checkbox':
if(O[x].checked){
if(/%5B%5D$|\[\]$/i.test(O[x].name)){
var N=O[x].name.replace(/%5B%5D$|\[\]$/i,'');
if(o.hasOwnProperty(N))
o[N].push(O[x].value);
else
o[N]=[O[x].value];
}
else
o[O[x].name]=O[x].value;
}
break;
}
}
break;
case 'TEXTAREA':
if(/%5B%5D$|\[\]$/i.test(O[x].name))
o[O[x].name.replace(/%5B%5D$|\[\]$/i,'')]=[O[x].value];
else
o[O[x].name]=O[x].value;
break;
case 'SELECT':
for(var z=0,J=O[x].length;z&lt;J;z++){
var Oz=O[x].options[z];
if(Oz.selected){
if(/%5B%5D$|\[\]$/i.test(O[x].name)){
var N=O[x].name.replace(/%5B%5D$|\[\]$/i,'');
if(o.hasOwnProperty(N))
o[N].push(Oz.value);
else
o[N]=[Oz.value];
}
else
o[O[x].name]=Oz.value;
}
}
break;
}
}
}
}
}
return o;
}
</pre>
<p> 中间有用到其他的函数。偶某些个人编写代码的习惯不是每个人都能够习惯的。</p>
35 楼 ja3939 2008-10-29  
学习一下!
34 楼 johncon 2008-10-22  
xxpniu 写道

我觉得参考下ext的楼主能搞的不错

怎么讲呢。。。  其实本人不大愿意大量使用js,但要实现效果,又不得不使用js
rich client。。。
33 楼 johncon 2008-10-22  
chhj_292 写道

总结了这么多问题,学术意义大于实际意义

确实,集思广益
32 楼 xxpniu 2008-10-21  
我觉得参考下ext的楼主能搞的不错
31 楼 chhj_292 2008-10-21  
总结了这么多问题,学术意义大于实际意义
30 楼 johncon 2008-10-18  
softsoft 写道

prototype中form.serialize有什么问题呢? LZ不用? 实际上正如小胖提到的checkbox、multiSelect这些里面都有一些比较特殊的处理 要保持整个页面form和服务器端的某种程度上的一致,单靠一次json来做,很费力 但是交互多了也不太好,听听大家意见

prototype的form.serialize并不能满足我的要求,我是希望能够级联,如:a.b[0].id
29 楼 lobbychmd 2008-10-16  
<div class='quote_title'>slaser 写道</div>
<div class='quote_div'>
<p>走得再远点,HTML元素转化为后台json对象不一定要按name或者id来进行绑定的。因为html元素是面向界面的,而json对象可能是个领域对象。</p>
<p>比如:</p>
<pre name='code' class='js'>var customer1 = {"id":0,"name":"adidas"};</pre>
<pre name='code' class='html'>&lt;div id="custome-id"&gt;&lt;/div&gt;
&lt;input id="customer-name" type="text"&gt;</pre>
<p> 应该能允许,customer1的id送到customer-id中,而"adidas"显示于customer-name里面。</p>
<p>完成这个功能不应该靠id值的默认匹配,而是应该有类似的绑定机制,比如:</p>
<p> </p>
<pre name='code' class='js'>BindingFactory.bind("custome-id",customer1.id);
BindingFactory.bind("custome-name",customer1.name);</pre>
 
<p>这样html里面元素的id可以和json里面的结构往不同的方向演化。json对象也可以成为领域对象和服务器进行交互。</p>
</div>
<p> </p>
<p>这样程序就复杂了嘛,按rails 的约定大于配置,最好就是名字刚好一样。所以用name 不用 id,因为name 是可以重复的。</p>
28 楼 slaser 2008-10-15  
<p>走得再远点,HTML元素转化为后台json对象不一定要按name或者id来进行绑定的。因为html元素是面向界面的,而json对象可能是个领域对象。</p>
<p>比如:</p>
<pre name='code' class='js'>var customer1 = {"id":0,"name":"adidas"};</pre>
<pre name='code' class='html'>&lt;div id="custome-id"&gt;&lt;/div&gt;
&lt;input id="customer-name" type="text"&gt;</pre>
<p> 应该能允许,customer1的id送到customer-id中,而"adidas"显示于customer-name里面。</p>
<p>完成这个功能不应该靠id值的默认匹配,而是应该有类似的绑定机制,比如:</p>
<p> </p>
<pre name='code' class='js'>BindingFactory.bind("custome-id",customer1.id);
BindingFactory.bind("custome-name",customer1.name);</pre>
 
<p>这样html里面元素的id可以和json里面的结构往不同的方向演化。json对象也可以成为领域对象和服务器进行交互。</p>
27 楼 softsoft 2008-10-15  
prototype中form.serialize有什么问题呢?
LZ不用?

实际上正如小胖提到的checkbox、multiSelect这些里面都有一些比较特殊的处理

要保持整个页面form和服务器端的某种程度上的一致,单靠一次json来做,很费力
但是交互多了也不太好,听听大家意见
26 楼 March 2008-10-15  
这个思想不错,代码质量如何暂不管它,有空来研究下
25 楼 lobbychmd 2008-10-15  
只获取form 的数据应该是历史原因吧,以前js 不流行时不是只自动提交form 的input 内容么。当时好像也没有dom 的概念

象级联的话 rails 不是从 Name 着手? name ='[a][b]c' 的就变成了 a.b.c

24 楼 johncon 2008-10-14  
shameant 写道

dojo.formToObject 可以把FORM分装成JSON对象

---谢谢提醒

看了下它的代码,并不支持级联,如a.b.id;和集合形式,如:a[0].b.id或
a[0].b[0].id的数据结构
23 楼 johncon 2008-10-14  
slaser 写道

楼主有没有想过把json对象数据copy到任意html元素?比如把{"id":"A1","innerHTML":"aaa"}的innerHTML复制到&lt;div id="A1"&gt;&lt;/div&gt;里面去?

有。。。  这个是要做扩展
即:
achun 写道

哈哈,终于看到有人和我有相同的想法了,(以前没有发现).

不过,其实这个想法可以延伸的,而且我已经延伸了.那就是:

既然是要得到JSON的数据,那一定和form有关么?非要从form中获取么?

当然不是.因此我写了一个基于jQuery的扩展


使得不拘泥于form
22 楼 slaser 2008-10-14  
楼主有没有想过把json对象数据copy到任意html元素?
比如把{"id":"A1","innerHTML":"aaa"}的innerHTML复制到
<div id="A1"></div>
里面去?
21 楼 johncon 2008-10-13  
whiletrue 写道

我想问下日期类型你是怎么判断的呢?也就是如何在json里面做标志,然后转成java对象的,学习下
fins 写道
你用什么工具做的转换啊? json和java转换的东西我做过很多 你这个问题 建议在转换前就处理好 是int 型 还是string 型你必须要明确的告诉 转换器 目前我的做法是&nbsp;&nbsp; json ---&gt;java 时 , 按字符串从sjon中取值 在向 java对象中赋值时 判断对象的类型 然后做响应的转换. btw: select-multiple的数据在客户端时 都是字符串型 最后到后台是什么类型取决于你的需求.

这个我尝试了下
json-->java
在用json-lib把jsonString转换成jsonObject之前
JSONObject.fromObject(jsonString)
增加注册:
JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(new String[] {"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss"}));

java-->json
在用json-lib把java转换成jsonObject之前
JSONArray.fromObject(object, jsonConfig)或
JSONObject.fromObject(object, jsonConfig
增加配置:
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor());
其中JsonDateValueProcessor是自己扩展处理的
public class JsonDateValueProcessor implements JsonValueProcessor {

	private String format = "yyyy-MM-dd HH:mm:ss";

	public JsonDateValueProcessor() {

	}

	public JsonDateValueProcessor(String format) {
		this.format = format;
	}

	public Object processArrayValue(Object value, JsonConfig jsonConfig) {
		String[] obj = {};
		if (value instanceof Date[]) {
			SimpleDateFormat sf = new SimpleDateFormat(format);
			Date[] dates = (Date[]) value;
			obj = new String[dates.length];
			for (int i = 0; i < dates.length; i++) {
				obj[i] = sf.format(dates[i]);
			}
		}
		return obj;
	}

	public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
		if (value instanceof Date) {
			String str = new SimpleDateFormat(format).format((Date) value);
			return str;
		}
		return value == null ? null : value.toString();
	}

	public String getFormat() {
		return format;
	}

	public void setFormat(String format) {
		this.format = format;
	}

}
20 楼 rainchen 2008-10-13  
jquery用serializeArray 不是直接生成JSON对象,是生成组合对象数组,类似[{name: 'a', value: 'b'},{name: 'c', value: 'd'}]
完整
19 楼 rainchen 2008-10-13  
prototype可以实现啊
$("test_form").serialize().toQueryParams()

相关推荐

    javascript表单域与json数据间的交互第1 3页.docx

    ### JavaScript表单域与JSON数据间的交互 #### 知识点概述 在现代Web开发中,数据处理是一项核心任务,特别是在客户端与服务器之间的数据交换过程中。JavaScript作为一种强大的客户端脚本语言,提供了丰富的API来...

    javascript表单域与json数据间的交互第3 3页.docx

    #### jQuery插件实现表单域与JSON数据交互 在提供的文档示例中,作者通过自定义jQuery插件实现了表单域与JSON数据之间的交互。下面将详细解析这一插件的具体实现及其工作原理。 #### jQuery插件详解 ##### 插件...

    javascript表单域与json数据间的交互.docx

    ### JavaScript表单域与JSON数据间的交互 在Web开发中,JavaScript经常被用来处理表单数据,特别是将这些数据转化为JSON格式以便进行前后端的数据交换。本文将详细探讨如何使用JavaScript来实现表单域与JSON数据...

    javascript表单域与json数据间的交互第2 3页.docx

    ### JavaScript表单域与JSON数据间的交互 #### 引言 在现代Web开发中,JavaScript作为前端编程的主要语言之一,其与HTML表单之间的交互变得日益重要。通过将表单中的数据转换为JSON格式,我们可以更方便地进行数据...

    javascript表单域与json数据间的交互第1/3页

    JavaScript表单域与JSON数据间的交互,实质上是如何在JavaScript中将表单数据编码成JSON格式的数据,以及如何将JSON格式的数据解码到表单域中。 在描述中提到,作者没有找到能够满足特定需求的JavaScript框架,即...

    JQuery getJSON() 调用Servlet简单例子

    在这个例子中,我们将深入探讨如何使用jQuery的`getJSON()`函数与Servlet进行交互。 首先,我们来看`getJSON()`的基本用法。`getJSON()`接收三个参数:URL,数据(可选),以及一个回调函数。当服务器返回JSON数据...

    Ajax遍历jSon后对每一条数据进行相应的修改和删除(代码分享)

    这个示例展示了如何在前端处理JSON数据,以及如何利用Ajax异步交互实现数据的动态展示和操作。值得注意的是,尽管`eval()`在这里用于解析JSON,但它通常被认为是不安全的,因为它可以执行任意的JavaScript代码。更好...

    ajax+json实现多级联动菜单

    - 需要注意跨域问题,确保前后端之间的数据交互顺利进行。 #### 五、总结 通过以上介绍可以看出,利用Ajax+JSON技术可以高效地实现多级联动菜单功能,极大地提升了用户体验。此外,结合Struts框架的使用进一步简化...

    php和js交互

    - 适用于解决跨域问题的简单方法,通过在JavaScript中定义一个回调函数,PHP返回JSON数据包裹在该函数调用中。 - PHP:`echo $_GET['callback'] . '(' . json_encode($data) . ')';` - JavaScript:`script.src =...

    C# .net 接收 vue resources 或者axios的post请求并解析成json的方法

    在开发Web应用时,前端与后端的数据交互是不可或缺的一部分。Vue.js是一个流行的JavaScript框架,用于构建用户界面,而axios是Vue.js中常用的库,用于处理HTTP请求,包括POST请求。另一方面,C# .NET是一种强大的...

    lotus domino jqgrid显示视图例子

    5. **表单域的使用**:"表单添加域.txt"可能涉及在Lotus Domino表单中添加域(fields)以支持数据的输入和验证。这些域的数据可以被JqGrid用于显示或编辑。 总的来说,"lotus domino jqgrid显示视图例子"是一个将...

    ASP.NET项目知识点整理与项目总结

    JSONP可以请求来自其他域的JSON数据,请求的URL中通常会包含一个callback参数,用于指定服务器返回数据的回调函数名称。通过定义回调函数,可以实现跨域数据的调用和使用。 最后,项目中还提及了序列值的获取和JSON...

    extjs数据存储与传输详解

    这些类共同协作,使得开发者能够轻松地在前端应用中处理复杂的数据交互。 **Ext.data**的主要功能特点包括: 1. **异步加载**:支持异步加载数据,减少用户等待时间。 2. **类型转换**:内置对多种数据类型的转换...

    COMbiancheng.rar_site:www.pudn.com

    在给定的标题“COMbiancheng.rar”和描述中提到的“COM编程获取表单域信息”,我们可以理解这是一个关于如何利用COM组件来获取Web表单域数据的教程或代码示例。 在Web开发中,表单域是用户在HTML表单中输入数据的...

    代理中Domino对域的解析和GetItemValue使用方法

    综上所述,无论是在LotusScript还是JavaScript中,获取表单域的值都需要根据所使用的脚本语言和域的类型来采取不同的策略。LotusScript提供了更为一致的接口,而JavaScript则需要针对每种类型的域采取特定的处理方式...

    ACCP6.0使用javascript增强交互效果第三章课后习题答案

    你可能需要将JSON数据解析为JavaScript对象,或将JavaScript对象转换为JSON字符串。 在解ACCP6.0第三章的课后习题时,你需要综合运用以上知识点,通过实践加深理解。文件"MyWab"可能是完成这些习题的工具或参考资料...

    SilverLight与控制台程序托管的WCF进行垮域通讯实例

    然而,为了实现不同域之间的数据交互,WCF提供了跨域功能。在本实例中,SilverLight应用需要能够跨域调用控制台程序托管的WCF服务,这就需要配置WCF服务允许跨域请求。 4. **控制台程序托管WCF** 通常,WCF服务会...

    使用jQuery ajax提交表单代码

    首先,jQuery的$.ajax()函数是进行Ajax请求的核心,它允许我们与服务器进行异步数据通信。在“使用jQuery ajax提交表单代码”的资源中,我们可以期待看到一个清晰的示例,展示如何将表单数据发送到服务器,并处理...

    记录-笔记-html-异步读取省份和二级城市

    以上就是关于“记录-笔记-html-异步读取省份和二级城市”这个主题的主要知识点,包括jQuery的异步请求、JSON数据交换、前端与后端交互以及表单验证等。在实际开发中,理解和熟练掌握这些技术是提升网页应用性能和...

Global site tag (gtag.js) - Google Analytics