后台 ajax 异步修改示例

 
更多

现在很多后台程序修改数据的方法很人性化,点击文字之后该文字就会被增加到一个文本输入框之内,当该输入框失去焦点后,输入框消失,文字状态还原,不过文字的内容却不声不响的被改变了。用过 ecshop ,ecmall 开源程序的朋友应该都知道。一直感觉这个功能很实用,下面是作者从一开源程序内提取出来的实现 ajax 异步修改内容的功能,仅将一些主要的地方贴出来,更深层次的,大家可自行扩展。

(1)首先 html 代码如下:

<td>
<span class="editable" require="must" id="order143" url="http://www.phpernote.com/?action=reOrder&order_id=">465</span>
</td>

(2)js 代码如下(这部分是关键代码):

$('span[class="editable"]').click(function(){
    var s_value=$(this).text();
    var s_url=$(this).attr('url');
    var s_id=$(this).attr('id');
	var require=$(this).attr('require');
    $('<input type="text">').css({border:'1px solid #ccc',width:'80%',height:'20px'})
	.attr({value:s_value,size:5})
	.appendTo($(this).parent())
	.focus()
	.select()
	.keyup(function(event){
		if(event.keyCode==13){
			if(require=='must'){
				if($(this).val().length==0){
					alert('此处内容不能为空!');
				}
			}
		}
		$(this).prev('span').show().text($(this).attr('value'));
		$.ajax({
			type:'GET',
			url:s_url+encodeURI(s_value),
			cache:false,
			dataType:'json',
			success:function(data){
				if(data.code==='0'){
					$('#'+s_id).parent().remove();
					return;
				}else{
					alert(data.alerts);
				}
			}
		});
		$(this).remove();
	})
	.blur(function(){
		if(require=='must'){
			if($(this).val().length==0){
				alert('此处内容不能为空!');
			}
		}
		$(this).prev('span').show().text($(this).attr('value'));
		$.ajax({
			type:'GET',
			url:s_url+encodeURI(s_value),
			cache:false,
			dataType:'json',
			success:function(data){
				if(data.code==='0'){
					$('#'+s_id).parent().remove();
					return;
				}else{
					alert(data.alerts);
				}
			}
		});
		$(this).remove();
	});
	$(this).hide();
});

(3)下面就是写具体的程序处理文件了,这里就不再写下去了,主要是以上关键代码搞懂了,其实就没什么问题了。

打赏

本文固定链接: https://www.cxy163.net/archives/4438 | 绝缘体

该日志由 绝缘体.. 于 2013年05月23日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 后台 ajax 异步修改示例 | 绝缘体
关键字: , , , ,

后台 ajax 异步修改示例:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter