javascript获取列表框的值添加进文本框,不重复。

如图所示,使用javascript,不用服务器端脚本,只用JS。实现效果就是,点按钮,列表框里的选中的值,即会新增到左边的多行文本框里,如果有重复的,则弹出提示框,说已经... 如图所示,使用javascript,不用服务器端脚本,只用JS。实现效果就是,点按钮,列表框里的选中的值,即会新增到左边的多行文本框里,如果有重复的,则弹出提示框,说已经添加过了,并不再添加,
可我弄的,总是添加第一个时会提示,再选择别的,点按扭,也提示添加过了,还是是继续往里添加,不知道问题出在哪里,
function ta()
{
if( document.ff.txtadd.value == "")
//********************<<<<<<<<<<<*******
{
document.ff.txtadd.value=document.ff.s1.value;
}
else
{
//*******判断有没有相同的******<<<<<<<<***********
var duibi=document.ff.s1.value; //要对比的字符串
var str=document.ff.txtadd.value; //获取总字符串
var array2=new Array(); //新建数组
array2 = str.split(","); //给数组赋值

for(var a=0; a<array2.length; a++) //循环显示截取后的子字符串
{
array2[a]=str.split(",")[a]; //数组中的各个值
if(duibi != array2[a])
{
document.ff.txtadd.value += "," + document.ff.s1.value;
}
}
}
}
展开
 我来答
MyLazyGirl
2010-03-20 · 超过19用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:57万
展开全部
for(var a=0; a<array2.length; a++) //循环显示截取后的子字符串
{
array2[a]=str.split(",")[a]; //数组中的各个值
if(duibi != array2[a])
{
document.ff.txtadd.value += "," + document.ff.s1.value;
}
}
你这个循环写的是从文本框中第一个词语开始挨个与选中项做比较,如果不一样就添加,问题出在应该比完才知道究竟是否已经添加过。结合你这个图片就是,循环第一次时,文本的值为"辣椒",这样只要选中的不是辣椒那一项都会添加(无论是否添加过)。
可以改成1.做循环,如果相等break出循环或者直接return;不相等才添加。2.或者添加标志位,初始化为是false;循环遍历如果有相同值则改为true;循环结束后根据标志位选择是否添加值到文本框。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式