昨天小弟发了个帖子,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];呢?小弟实在很菜`请各位大大不吝赐教!
{
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];呢?小弟实在很菜`请各位大大不吝赐教!
ret=ret.substring(1, ret.length) //截取字符
xt_box.value+= ret;
像这样的东西,我觉得用一个变量保存值,然后再赋新值就行了.
我不管你是怎么提示的,
var oldValue=txt_box.value.innerHTML;
用一个oldValue保存值,这个要在没有输入东西前,就是
在你的输入框为空,或当你选择了某项后,还没有输入新的
字符时保存了,
然后再txt_box.value=value.innerHTML+oldValue;
这样就可以了.
txt_box.value=value.innerHTML+oldValue;
这样的写法是不行的
它不是另一个对象的属性,而是一个内置对象,即一串字符字符串输入脚本中时必须位于引号内。
属性
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() 把字符串中的文本变成大写
substr(fromIndex,length)eg:alert("abcd".substr(2));
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;
}
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?
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楼..哈哈`就用你的了``谢谢啦``结贴给分
"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>