下面的validate()方法有点长, 帮我看一下还能怎么改进一下
<script type="text/javascript">function changeSequence(sq){
if(sq=='sq'){
enableSequence();
} else {
disableSequence();
}
}function enableSequence(){  var refTable = document.getElementById("referList");
 var seqList = document.getElementsByTagName("input");
 for (var i=0; i<seqList.length; i++) {
 
if (seqList[i].type == "text") {
    var reg = /^referenceCode\[\d+\]\.refSeqNum$/; 
    if (reg.test(seqList[i].name))
     seqList[i].disabled=false;
}
 }
}function disableSequence(){  var refTable = document.getElementById("referList");
 var seqList = document.getElementsByTagName("input");
 for (var i=0; i<seqList.length; i++) {
 
if (seqList[i].type == "text") {
    var reg = /^referenceCode\[\d+\]\.refSeqNum$/; 
    if (reg.test(seqList[i].name))
     seqList[i].disabled=true;
}
 }
}function validate() {
 var refTable = document.getElementById("referList");
 var seqList = document.getElementsByTagName("input");
     var seqs = new Array();
 var refCodeDesc = new Array();
 var refCode = new Array();
 
 for (var i=0; i<seqList.length; i++) {
 

   var reg = /^referenceCode\[\d+\]\.refSeqNum$/; 
 var refCodeDescReg = /^referenceCode\[\d+\]\.refCodeDesc$/; 
 var refCodeReg = /^referenceCode\[\d+\]\.refCode$/; 
   if (reg.test(seqList[i].name)) {
    seqs.push(seqList[i]);
 }
 if (refCodeDescReg.test(seqList[i].name)) {
  refCodeDesc.push(seqList[i]);
 }
 if (refCodeReg.test(seqList[i].name)) {
  refCode.push(seqList[i]);
 }

 }
 
 var sortArray = new Array();
 
 for (var i = 0; i < refCode.length; i++) {
  if (refCode[i].value && refCode[i].value !="") {   if( !isNumeric(seqs[i].value)) {
   alert("please input a valid sequence no");
seqs[i].focus();
return false;
  }
  
 if (refCodeDesc[i].value.trim().length <=0 ) {
     alert("please input the Reference Description");
 refCodeDesc[i].focus();
 return false;
  }           sortArray.push(seqs[i]);
} else if (refCodeDesc[i].value && refCodeDesc[i].value.trim() !="") {
alert("please input the Reference Code");
refCode[i].focus();
return false;
} else if (seqs[i].value && seqs[i].value.trim() !="") {
alert("please input the Reference Code");
refCode[i].focus();
return false;
}
 }
 
 for (var i = 0; i < sortArray.length; i++) {
        for (var j =i+1; j <sortArray.length; j ++) {
if (sortArray[i].value == sortArray[j].value) {
    alert("You have the same Reference Sequence");
sortArray[j].focus();
    return false;
}
}
}   return true;
}String.prototype.trim=function(){     
    return this.replace(/(^\s*)|(\s*$)/g, '');  
}   // Checks whether is numeric
function isNumeric(s)
{
 if(isNaN(s)) {
   return false;
 }
else{
    if (parseFloat(s) > 0) {
  return true;
} else {
return false;
}
}
  
}
</script>
<table width="80%" cellspacing="2" cellpadding="2" id="referList">

  <tbody><tr><td colspan="4"><font color="red">NOTE: Inactive status only applies to Activity for entry screens. Once set, it will not be shown in the selection list.</font></td></tr>
  <tr><td colspan="4">
  <input type="radio" onclick="changeSequence('al');" value="alpha" name="sequence"/>Display By Alpha
  <input type="radio" onclick="changeSequence('sq');" value="sequence" name="sequence"/>Display By Sequence No
  
  </td></tr>
<tr bgcolor="white">
<td width="20%" class="header">Reference Code</td>
<td width="40%" class="header">Reference Description</td>
<td width="20%" class="header">Sequence No</td>
<td width="20%" class="header">Inactive </td>

</tr>




<tr valign="top" bgcolor="white">
<td>AGT
<input type="hidden" value="AGT" name="referenceCode[0].refCode"/>
</td>
<td align="left">
<input type="text" value="Agent" size="40" name="referenceCode[0].refCodeDesc"/>
</td> 
<td><input type="text" value="1" size="3" name="referenceCode[0].refSeqNum"/></td>
<td>
<input type="checkbox" value="AGT" name="referenceCode[0].deleteFlag"/>
</td>
</tr>





<tr valign="top" bgcolor="white">
<td>BO
<input type="hidden" value="BO" name="referenceCode[2].refCode"/>
</td>
<td align="left">
<input type="text" value="Buying Office" size="40" name="referenceCode[2].refCodeDesc"/>
</td> 
<td><input type="text" value="3" size="3" name="referenceCode[2].refSeqNum"/></td>
<td>
<input type="checkbox" value="BO" name="referenceCode[2].deleteFlag"/>
</td>
</tr>


<tr valign="top" bgcolor="lightyellow">
<td>TRADE
<input type="hidden" value="TRADE" name="referenceCode[3].refCode"/>
</td>
<td align="left">
<input type="text" value="Trading Company" size="40" name="referenceCode[3].refCodeDesc"/>
</td> 
<td><input type="text" value="4" size="3" name="referenceCode[3].refSeqNum"/></td>
<td>
<input type="checkbox" value="TRADE" name="referenceCode[3].deleteFlag"/>
</td>
</tr>





























<tr valign="top" bgcolor="white">
<td>
<input type="text" value="" name="referenceCode[12].refCode"/>
</td>
<td align="left"><input type="text" value="" size="40" name="referenceCode[12].refCodeDesc"/></td>
<td><input type="text" value="" size="3" name="referenceCode[12].refSeqNum"/></td>
<td/>
</tr>

<tr valign="top" bgcolor="lightyellow">
<td>
<input type="text" value="" name="referenceCode[13].refCode"/>
</td>
<td align="left"><input type="text" value="" size="40" name="referenceCode[13].refCodeDesc"/></td>
<td><input type="text" value="" size="3" name="referenceCode[13].refSeqNum"/></td>
<td/>
</tr>

<tr valign="top" bgcolor="white">
<td>
<input type="text" value="" name="referenceCode[14].refCode"/>
</td>
<td align="left"><input type="text" value="" size="40" name="referenceCode[14].refCodeDesc"/></td>
<td><input type="text" value="" size="3" name="referenceCode[14].refSeqNum"/></td>
<td/>
</tr>






<tr>
<td align="center" class="tr_paginator" colspan="4">
<input type="submit" border="" value="Confirm" name="Submit"/>
<input type="submit" border="" value="Cancel" name="close"/>
</td>
</tr>
</tbody></table>