昨天小弟发了个帖子,http://topic.csdn.net/u/20091019/21/84799ce2-7bb9-4aaa-93d5-a2e26c139395.html?1893383579在各位大大的帮助下初步解决了,但是又有了新的问题.我先把原问题叙述一下最初我用的是这个functionfunction writeText(id)

var txt_box=document.getElementById("toUser"); 
var value=document.getElementById(id); 
txt_box.value=value.innerHTML; 
}
比如现在有一个输入框,我输入了a,然后下面的提示中就有[email protected]
[email protected]
[email protected]
[email protected]然后我选取了[email protected]现在地址栏里有的就是  [email protected];然后接着后面我又输入了b,然后下面的提示中就有[email protected]
[email protected]
[email protected]
[email protected]然后我选取了[email protected]可是这时我的地址栏里不是 [email protected];[email protected];而是[email protected];当我把function改成本帖最开头那个时(没有那些注释),就什么也无法输出了. 
然后,在各位大大的指点下,我把最后的txt_box.value=value.innerHTML; 改成了txt_box.value+=value.innerHTML; 初步解决,但是又有了新的问题,就是,比如还是上面那个例子
我输入a,选择[email protected]后,地址栏里显示的却是  [email protected]; 再输入b且选择[email protected],地址栏里就变成了
[email protected];[email protected];怎样才能是[email protected];[email protected];呢?小弟实在很菜`请各位大大不吝赐教!

解决方案 »

  1.   

    比较偷懒的方法是var ret=value.innerHTML;
    ret=ret.substring(1, ret.length) //截取字符
    xt_box.value+= ret;
      

  2.   

    js里有没有类似php里的substr或者explode之类的函数啊?我的想法是直接清理掉最后一个分号之后的内容然后取代,可是知道用php怎么做,js实在不熟...比如,字符串为 qdqwdqwdqw;wfwfwf;uhtbe;fw我怎么样才能把这个字符串变为 qdqwdqwdqw;wfwfwf;uhtbe; 望高人解答!另外3楼的兄弟谢谢你的热心``但是我的问题不是这个
      

  3.   

    txt_box.value+=value.innerHTML;
    像这样的东西,我觉得用一个变量保存值,然后再赋新值就行了.
    我不管你是怎么提示的,
    var oldValue=txt_box.value.innerHTML;
    用一个oldValue保存值,这个要在没有输入东西前,就是
    在你的输入框为空,或当你选择了某项后,还没有输入新的
    字符时保存了,
    然后再txt_box.value=value.innerHTML+oldValue;
    这样就可以了.
      

  4.   

    这样的话输出的是 undefined, 而且这就是我在上一贴中遇到的问题,不知道为什么在js里
    txt_box.value=value.innerHTML+oldValue; 
    这样的写法是不行的
      

  5.   

    B.27 string对象
      它不是另一个对象的属性,而是一个内置对象,即一串字符字符串输入脚本中时必须位于引号内。
      属性
      length 字符串中的字符个数
      方法
      anchor() 用来把字符串转换到HTML锚点标记内(<A NAME=>)
      big() 把字符串中的文本变成大字体(<BIG>)
      blink() 把字符串中的文本变成闪烁字体(<BLINK>)
      bold() 把字符串中的文本变成黑字体(<B>)
      charAt() 寻找字符串中指定位置的一个字符
      fixed() 把字符串中的文本变成固定间距字体(<TT>)
      fontcolor() 改变字符串中文本的颜色(<FONT COLOR=>)
      fontsize() 把字符串中的文本变成指定大小(<FONTSIZE=>)
      indexOf() 用来搜索字符串中的某个特殊字符,并返回该字符的索引位置
      italics() 把字符串中的文本变成斜字体(<I>)
      lastlndexOf() 与indexof相似,但是向后搜索最后一个出现的字符
      link() 用来把字符串转换到HTML链接标记中(<A HREF=>)
      small() 把字符串中的文本变成小字体(<SMALL>)
      strike() 把字符串中的文本变成划掉字体(<STRIKE>)
      sub() 把字符串中的文本变成下标(subscript)字体((SUB>)
      substring() 返回字符串里指定位置间的一部分字符串
      sup() 把字符串中的文本变成上标(superscript)字体(<SUP>)
      toLowerCase() 把字符串中的文本变成小写
      toUpperCase() 把字符串中的文本变成大写
      

  6.   

    jssubstring(formIndex,toIndex)
    substr(fromIndex,length)eg:alert("abcd".substr(2));
      

  7.   

    alter(typeof oldValue)输出什么
      

  8.   


    function writeText(id)

    var txt_box=document.getElementById("toUser"); 
    var value=document.getElementById(id); 
    txt_box.value = txt_box.value.substring(0,txt_box.value.lastIndexOf(';')+1);
    txt_box.value+=value.innerHTML; 
    }
      

  9.   

    这个方法不够好啊..用户万一输了2个字母呢?另外,我写到这一步了,我已经能够获取分号前的了,就是,怎么才能合在一起啊??
    function writeText(id){
    var txt_box=document.getElementById("toUser");
    var value=document.getElementById(id);
    var oldValue=document.getElementById("toUser").value;
    var element=oldValue.split(";");
    var leng=element.length-1;
    var result='';
    for(var i=0; i<leng; i++){
    result+=element[i]+';';
    }
    var newValue=result+value;
    txt_box.value=newValue.innerHTML;
    为什么输出undefined?
      

  10.   

    11楼的``你真牛B!!!!怎么不早点出来....我自己也解决了..不过比你的 复杂多了..
    function writeText(id){
    var txt_box=document.getElementById("toUser");
    var value=document.getElementById(id);
    var oldValue=document.getElementById("toUser").value;
    var element=oldValue.split(";");
    var leng=element.length-1;
    var result='';
    for(var i=0; i<leng; i++){
    result+=element[i]+';';
    }
    txt_box.value=result;
    txt_box.value+=value.innerHTML;再次膜拜11楼..哈哈`就用你的了``谢谢啦``结贴给分
      

  11.   

    试试这个<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> 
      <title></title> 
      <style type="text/css"> 
      *{ 
      margin:0px;padding:0px;font-size:12px; 
      } 
        input{ 
          width:100px;height:20px;border:1px solid #ccc; 
        }   </style>  
    <script language="javascript"> 
    var mails= ["[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]"];
    function tips(id){
    var info = document.getElementById('eId');
    if(info.value != null && info.value.length != 0){
    var tempValue
    if(info.value.lastIndexOf(";") != -1){
    tempValue = info.value.substr(info.value.lastIndexOf(";")+1);
    }else {
    tempValue = info.value;
    }
    var showMsg = "";
    for(var i = 0 ;i < mails.length && tempValue !="" ; i ++){
    if(mails[i].indexOf(tempValue) == 0){
    showMsg += "<label type='text'style='cursor:hand' readonly='true' onclick='setAreaValue(this.value)' value='"+mails[i]+"'>"+mails[i]+"</label><br>";
    }
    }
    var t = info.offsetTop + event.srcElement.createTextRange().text.length;
    var l = info.offsetLeft + event.srcElement.createTextRange().text.length;
    var tips = document.getElementById("tips");
    tips.style.left = l  + 10;
    tips.style.top = t ;
    if(showMsg == ""){
    tips.style.display = "none"; 
    }else {
    tips.style.display = ""; 
    tips.innerHTML = showMsg; 
    }
    }

    var infoValue ="";
    function setAreaValue(value){
    infoValue += value + ";";
    document.getElementById('eId').value = infoValue;
    document.getElementById('areaId').value += value+";";
    }function outtips(){ 
       document.getElementById("tips").style.display = 'none'; 

    </script> </head> <body> 
    <div id="tips" style="position:absolute;border:1px solid #ccc;padding:0px 3px;color:#f00;display:none;height:20px;line-height:20px;background:#fcfcfc" onmouseup="outtips()"></div> email:<input type="text" id="eId" style="width:500px"  onkeyup="tips('eId')" onfocus="tips('eId')" /> <br /><br /><br /><br /><br /><br /><br /><br /><br /><textarea rows="5" cols="50" id="areaId"></textarea>
    </body> 
    </html>