主题: 分享上传图片后在下拉框中设为封面图,图片列表删除等操作
作者: 小浪子, 发布日期: 2013-02-21 10:40:54, 浏览数: 3355

一直以来很多人在问。我也是js菜鸟。.其实配合官方提供的:afterUpload方法就行。

花了10分钟。写了一个。不太习惯使用官方的node,用的是jQuery写操作的。。

 

说明。不用问我在后台怎么进行删除。

因为我只懂asp和asp.net(是新手菜鸟),如果你问php。我不懂。这个你做php开发的。不懂删除文件。。这也。。。

 

好了。不多说。。上代码:

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>upload-news</title>
<style>
form {
	margin: 0;
}
textarea {
	display: block;
}
</style>
<script charset="utf-8" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script charset="utf-8" src="../kindeditor-min.js"></script>
<script charset="utf-8" src="../lang/zh_CN.js"></script>
<script type="text/javascript">
$(function() {
    var editor = KindEditor.create('textarea[name="content"]', {
        uploadJson: '../asp/upload_json.asp',
        fileManagerJson: '../asp/file_manager_json.asp',
        afterUpload: function(url) {
            // 插入到文本框中
            if ($('#ImagesUrlList').val() != '') {
                $('#ImagesUrlList').val($('#ImagesUrlList').val() + url + '|');
            } else {
                $('#ImagesUrlList').val(url + '|');
            }
            // 插入到下拉框中
            $('#DownUrlList').append('<option value="' + url + '">' + url + '</option>');
            // 插入图片列表,和下拉框一样。都的使用:append方法插入
            var timestamp = getRandNumber(1000000, 999999999);
            $('#ImgList').append('<li id="n' + timestamp + '"><img src="' + url + '" width="120" height="90" /><p><a href="javascript:void(0);" onClick="RemoveImages(\'n' + timestamp + '\',\'' + url + '\');return false;">删除</a></p></li>');
        }
    });
});
function doChangeImages(str) {
    if (str != '') {
        $('#ImagesUrl').val(str);
    }
}
function RemoveImages(n, v) {
    $('#' + n).remove();
    if ($('#ImagesUrlList').val() != '') {
        // 因为是以|分割保存在文本框中。所以要加上个|,
        // 要是这里不想加,把|加在生成li图片列表的标签函数里面:
        // onClick="RemoveImages(\'n' + timestamp + '\',\'' + url + '|\');return false;"
        $('#ImagesUrlList').val($('#ImagesUrlList').val().replace(v + '|', ''));
        // 同时删除下拉框中的
        $('#DownUrlList option[value=\'' + v + '\']').remove();
        // 删除之后。如果想从服务器上面删除,这里做个ajax的操作就行。传递的图片路径的变量为:v
        // dataurl在后端接收图片的路径,进行删除
        $.get('删除的url,根据你的语言', {
            dataurl: v
        },
        function(data) {
            //这里data返回处理的值,程序员自行处理,后台语言不一样,我就不处理了
        })
    }
}
// 随机函数
function getRandNumber(startNum, endNum) {
    var randomNumber;
    randomNumber = Math.round(Math.random() * (endNum - startNum)) + startNum;
    return randomNumber;
}
</script>
</head>
<body>

<h3>不太习惯使用官方的node,使用jQuery</h3>
<form>
  <textarea name="content" style="width:750px;height:200px;"></textarea>
  <br />
  返回文件名到文本框,可能返回的文件比较多。这里就用文本域了:
  <textarea id="ImagesUrlList" style="width:750px;height:100px;"></textarea>
  <br />
  封面图片:<input type="text" id="ImagesUrl" style="width:400px;">
  <br />
  <select id="DownUrlList" onChange="doChangeImages(this.value);">
  	<option value="">选择封面图片</option>
  </select>
  <br />
  图片列表:<br />
  <div>
    <ul id="ImgList">
    </ul>
  </div>
</form>
</body>
</html>

 

作者: lyj4532556, 发布日期: 2013-07-06 17:57:57
谢谢楼主分享啊,你这个很牛,能不能只把值返回到id="ImagesUrlList"  这对于做产品相册很受用的
回复
发表新帖 发表回复