js replace问题,在线等

cg20 2014-03-25 09:43:17
我有个复选框,选中的时候将值加到文本框里,再次点击没选中的时候就从文本框里将对应的值删除掉。
我想把文本框里面所有的包含这个的替换成引号‘’,一直没成功,请问是怎么写的?谢谢了
...全文
174 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
打字员 2014-03-25
  • 打赏
  • 举报
回复
如果想簡單一點,可以在每次操作checkbox后

var htmls = [];
$(':checkbox:checked').each(function() {
    htmls.push(this.value);
});
$(':text').val(htmls.join(''));
不知道txt的值是否有分隔符,如果沒有可以直接

txt.value = txt.value.replace(checkbox.value, '');
如果有分隔符,如‘,’

txt.value = txt.value.replace(checkbox.value, '').replace(/(^,+|,+$)/,  '').replace(/,+/, ',');
  • 打赏
  • 举报
回复
既然是添加删除txt中checkbox对应的value



cg20 2014-03-25
  • 打赏
  • 举报
回复
引用 7 楼 cg20 的回复:
[quote=引用 5 楼 Return_false 的回复:] 你添加的字符串有什么具体特征,里面有没有关联ck1的标识,不然无法判断究竟替换哪个?
完整代码如下:

<input type="checkbox" name="l_attr[]" value="http://a.com/1.jpg" onclick="insertAttr(this,1,this.value);" />
<input type="checkbox" name="l_attr[]" value="http://a.com/c.jpg" onclick="insertAttr(this,1,this.value);" />
<input type="checkbox" name="l_attr[]" value="http://a.com/BB.jpg" onclick="insertAttr(this,1,this.value);" />
<textarea id="l_linecontent"></textarea>

function insertAttr(ck,day,str){
	obj=get_obj("l_linecontent"+day);
	if (ck.checked==true){
		obj.value=obj.value+'[img='+str+'][img]';//最后一个img前面有一个“/”,不让插入
	}else{
		obj.value=obj.value.replace(/\[(img)[^\[\]]*?\][^\[]*?\[\/\1\]/,'') ;
	}
}
上面的替换是按照你的来的,现在的功能是当取消时,textarea里面删除的不是对应的,而是从第一个img开始的。[/quote] 改了一个textarea的ID为“<textarea id="l_linecontent1"></textarea>”
cg20 2014-03-25
  • 打赏
  • 举报
回复
引用 5 楼 Return_false 的回复:
你添加的字符串有什么具体特征,里面有没有关联ck1的标识,不然无法判断究竟替换哪个?
完整代码如下:

<input type="checkbox" name="l_attr[]" value="http://a.com/1.jpg" onclick="insertAttr(this,1,this.value);" />
<input type="checkbox" name="l_attr[]" value="http://a.com/c.jpg" onclick="insertAttr(this,1,this.value);" />
<input type="checkbox" name="l_attr[]" value="http://a.com/BB.jpg" onclick="insertAttr(this,1,this.value);" />
<textarea id="l_linecontent"></textarea>

function insertAttr(ck,day,str){
	obj=get_obj("l_linecontent"+day);
	if (ck.checked==true){
		obj.value=obj.value+'[img='+str+'][img]';//最后一个img前面有一个“/”,不让插入
	}else{
		obj.value=obj.value.replace(/\[(img)[^\[\]]*?\][^\[]*?\[\/\1\]/,'') ;
	}
}
上面的替换是按照你的来的,现在的功能是当取消时,textarea里面删除的不是对应的,而是从第一个img开始的。
cg20 2014-03-25
  • 打赏
  • 举报
回复
引用 5 楼 Return_false 的回复:
你添加的字符串有什么具体特征,里面有没有关联ck1的标识,不然无法判断究竟替换哪个?


不让插入空的img ubb代码,所以截的图
  • 打赏
  • 举报
回复
你添加的字符串有什么具体特征,里面有没有关联ck1的标识,不然无法判断究竟替换哪个?
cg20 2014-03-25
  • 打赏
  • 举报
回复
引用 3 楼 Return_false 的回复:
你应该有某种对应关系,不然先选择ck3 追加 顺序就会乱掉
没有对应关系,可以是1,2,3或3,1,2的,我想是不是应该在replace(/\[(img)[^\[\]]*?\][^\[]*?\[\/\1\]/,'"') ,正则表达式里那填选中的值的规则?
  • 打赏
  • 举报
回复
你应该有某种对应关系,不然先选择ck3 追加 顺序就会乱掉
cg20 2014-03-25
  • 打赏
  • 举报
回复
引用 1 楼 Return_false 的回复:
replace(/\[(img)[^\[\]]*?\][^\[]*?\[\/\1\]/,'"')


你好,应该是我说的不清楚,麻烦了。
比如说有三个复选框ck1,ck2,ck3,值分别人
有一个文本框txt,
当我选中ck1把值加到txt后面,当我选中ck2把值加到txt后面,当我选中ck3把值加到txt后面........
当我取消ck2时,对应的值从文本框里去除,当我ck1,ck3......时对应的又从里面删除,我想要的就是选择中对应的加进去,取消对应的则删除。
  • 打赏
  • 举报
回复
replace(/\[(img)[^\[\]]*?\][^\[]*?\[\/\1\]/,'"')

87,915

社区成员

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

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