«

后台 ajax 异步修改示例

时间:2024-1-28 13:53     作者:韩俊     分类: Html+Css


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

(1)首先 html 代码如下:

<td>
<span class="editable" require="must" id="order143" url="http://www.maopiaopiao.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)下面就是写具体的程序处理文件了,这里就不再写下去了,主要是以上关键代码搞懂了,其实就没什么问题了。

标签: javascript html css

热门推荐