js想做一个邀请好友的功能。FF不支持。

lixueyuanac 2011-04-02 09:52:00
类似于很多 SNS网站的一个邀请好友功能,点击一个好友背景就变色打上一个勾。我是用 数组的办法取好友的ID的。点击一个好友,给JS中的数组赋上它的ID,然后再取消选中时,就删除数组中的ID,但是在FF上测试不通过。
我是把循环出来的每个好友上的DIV的name、ID 设成好友的ID值。然后点击div的时候就传送ID到函数中。

JS代码如下


Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};
function sele(_this){
if(_this.style.backgroundImage==""){
mark++;
set(_this.id);
_this.style.background='#C0C0C0';
_this.style.backgroundImage="url(images/mark.png)";
_this.style.backgroundRepeat="no-repeat";
_this.style.backgroundPosition="right top";
}else{
mark--;
unset(_this.name.value);
_this.style.background='';
_this.style.backgroundImage="";
}
}

function set(id){
if(fs==null){
fs = new Array();
}
var len = fs.length;
fs[len+1]=id;
}

function unset(id){
var index = fs.indexOf(id);
if(index!=-1){
fs.remove(index);
}
}

function putin(){
//给表单中的隐藏域赋值,
document.all.fs.value=fs;
}


不知道各位有没有好的办法取到最终选中的好友ID?
...全文
119 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhtapmys 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hch126163 的回复:]
//给表单中的隐藏域赋值,
document.all.fs.value=fs;
用 getElementById

如楼上所说,没必要高一个数组来保存。用户提交的时候,再来循环获取选中的好友编号!

可以不用checkbox.

div 设置几个属性就可以了

好友ID
是否选中
[/Quote]
++
hch126163 2011-04-02
  • 打赏
  • 举报
回复
//给表单中的隐藏域赋值,
document.all.fs.value=fs;
用 getElementById

如楼上所说,没必要高一个数组来保存。用户提交的时候,再来循环获取选中的好友编号!

可以不用checkbox.

div 设置几个属性就可以了

好友ID
是否选中

knightzhuwei 2011-04-02
  • 打赏
  • 举报
回复
ff不支持 document.all.的写法
另外最后提交 的时候可以去遍历所有的checkbox有没有打钩 打钩的取id然后提交
lixueyuanac 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tianxiaojuntt 的回复:]

点击的时候不要去保存或者删除一个ID,在最后确定时候在去获取被选中的ID值。
[/Quote]


主要是 每个好友项都是在一个 DIV中,到最后提交 的时候 怎么去判断 是否选中了呢?
TianXiaoJunTT 2011-04-02
  • 打赏
  • 举报
回复
点击的时候不要去保存或者删除一个ID,在最后确定时候在去获取被选中的ID值。
lixueyuanac 2011-04-02
  • 打赏
  • 举报
回复
还有 成员变量


//数组
var fs;
//数组索引
var mark = 0;
啤酒泡泡 2011-04-02
  • 打赏
  • 举报
回复
楼主将问题复杂化了,最后提交时判断checkbox是否选中

var allcb = $("form.frm input[type='checkbox']:[checked]");
var cids = [];
for ( var i = 0; i < allcb .length; i++) {
cids.push($(allcb[i]).val());
}
if (cids.length<1) {
alert('请选择邀请的好友。');
return false;
}

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧