读书人

怎么检测值重复

发布时间: 2012-03-27 13:44:24 作者: rapoo

如何检测值重复

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 下载

读书人网 >JavaScript

热点推荐