function $(v){return document.getElementById(v);}
function gInput(a,b){
var t="";
l=document.getElementsByName(a);
for(i=0;i<l.length;i++)
{
if(l[i].value)
{ t+=l[i].value+"|"
}
}
if(t){$(b).value="|"+t;}
}<input name="tmpInput" id="position1" type="text" onblur="gInput('tmpInput','position')" />
<input name="tmpInput" id="position2" type="text" onblur="gInput('tmpInput','position')" />
<input name="tmpInput" id="position3" type="text" onblur="gInput('tmpInput','position')" />
<input name=position id="position" type="text" />
这样能将用户输入的值加到一起,并用“|”隔开,方便下一步用php explode。但是用户经常输入重复的值,比如三个框都输入“厨师”,数据库最后的值为“|厨师|厨师|厨师|”
如何能巧妙地加个检测,将重复的值去除?
试看function $(v){return document.getElementById(v);}
var t='';
function gInput(a,b){
var temp="";
l=document.getElementsByName(a);
for(i=0;i<l.length;i++){
temp=l[i].value.replace(/^\s*|\s*$/g,'');
if(temp.length>0 && t.indexOf(temp)<0){
t+=temp+"|";
}
}
if(t.length>0){$(b).value="|"+t;}
}
http://topic.csdn.net/u/20111229/22/f6aa6dba-ed0d-4642-8e9d-a6557c701405.html
var allobjs = $("[name='"+tmpInput+"']");
var valusarray = [];
for(var i=0;i<allobjs.length;i++){
if($.inArray(allobjs.eq(i).val(),valuesarray){
alert("包含相同的字段,此时程序可以结束或返回false");
}else{
valuearray.push(allobjs.eq(i).val());
}
}
alert("所有name为"+tmpInput+"的文本框内容没有重复的值,此时程序结束,可以返回true或其它的操作");
}
上面的这个代码针对你的问题缩写,只要放在onblur里面就行。就是不管你有多少的文本框,他都会从头到尾一个一个的去比较,当遇到相同的,往下就不会去比较,直接弹出来提示“包含相同的字段,此时程序可以结束或返回false”。而当所有的文本框内容全部循环完毕都没有发现一样的值,那就是所有文本框的值都不一样。
可能上述的代码里面包含jQuery1.6的内容。如果需要详细的帮助文档(CHM格式),请移步到 http://download.csdn.net/detail/chenjianhuacool/4019542 下载