- JScript code
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;} }
- HTML code
<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。但是用户经常输入重复的值,比如三个框都输入“厨师”,数据库最后的值为“|厨师|厨师|厨师|”
如何能巧妙地加个检测,将重复的值去除?
------解决方案--------------------
试看。。。
- JScript code
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;} }
------解决方案--------------------
function gInput(tmpInput,position){
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 下载