日期:2014-05-16  浏览次数:20799 次

求助多组元素验证唯一值 - Web 开发 / Ajax
通常采用ajax验证用户名唯一值

如果是多个字段组合验证唯一性呢?

比如以下table 现在页面验证 a*加b* 的内容其他 a*加b* 的内容不重复,然后再ajax验证数据库(ajax验证再暂时不考虑).

HTML code

<TABLE>
  <TR>
    <TD><INPUT TYPE="text" id="a1" value="3"></TD>
    <TD><INPUT TYPE="text" id="b1" value="t"></TD>
  </TR>
  <TR>
    <TD><INPUT TYPE="text" id="a2" value="5"></TD>
    <TD><INPUT TYPE="text" id="b2" value="u"></TD>
  </TR>
  <TR>
    <TD><INPUT TYPE="text" id="a3" value="6"></TD>
    <TD><INPUT TYPE="text" id="b3" value="t"></TD>
  </TR>
  <TR>
    <TD><INPUT TYPE="text" id="a4" value="5"></TD>
    <TD><INPUT TYPE="text" id="b4" value="u"></TD>
  </TR>
  <TR>
    <TD><INPUT TYPE="text" id="a5" value="8"></TD>
    <TD><INPUT TYPE="text" id="b5" value="s"></TD>
  </TR>
  </TABLE>



------解决方案--------------------
你是拿a1 b1跟其他的a* b*比较还是说这里每两组a* b*都要比较
------解决方案--------------------
没懂。。。
------解决方案--------------------
这个问题 你之前不是问过了吗 ?
------解决方案--------------------
没看明白,意思是table的每一行数据要和其他行的不一样?
------解决方案--------------------
HTML code
<TABLE id="tb">
  <TR>
    <TD><INPUT TYPE="text" id="a1" value="3"></TD>
    <TD><INPUT TYPE="text" id="b1" value="t"></TD>
  </TR>
  <TR>
    <TD><INPUT TYPE="text" id="a2" value="5"></TD>
    <TD><INPUT TYPE="text" id="b2" value="u"></TD>
  </TR>
  <TR>
    <TD><INPUT TYPE="text" id="a3" value="6"></TD>
    <TD><INPUT TYPE="text" id="b3" value="t"></TD>
  </TR>
  <TR>
    <TD><INPUT TYPE="text" id="a4" value="5"></TD>
    <TD><INPUT TYPE="text" id="b4" value="u"></TD>
  </TR>
  <TR>
    <TD><INPUT TYPE="text" id="a5" value="8"></TD>
    <TD><INPUT TYPE="text" id="b5" value="s"></TD>
  </TR>
  </TABLE>
<br/><input type="button" value="验证数据" onclick="check()"/>
<script type="text/javascript">
function joinValue(inputs){
  var v='';
  for(var i=0;i<inputs.length;i++)v+=inputs[i].value+',';
  return v;
}
function check(){
  var data=[],trs=document.getElementById('tb').rows;
  for(var i=0;i<trs.length;i++)data[i]=joinValue(trs[i].getElementsByTagName('input'));//将每行的值串联起来
  for(var i=0;i<data.length-1;i++)
    for(var j=i+1;j<data.length;j++)
      if(data[i]==data[j]){
         alert('第'+(i+1)+'行数据和第'+(j+1)+'行数据一样!');
         return false;
      }
  return true;
}
</script>