在添加客户时,相同客户会提示不能添加,但有时候在删除某个客户后,继续添加该客户还会提示该客户已经存在。请达人指正。谢谢!
 <script type="text/javascript">
   var n = 1;
   var m = 0 ;
   var listValue = new Array(); //创建一个数组存放值
   function addRow()
   {
       var str="";
       var name = document.getElementById("account_name_id").value;
       if(name.length == 0)
       {
           alert("未输入客户名称!");
           addNameForm.account_name.focus();
           return false;
       }
       else
       {
           n = m+ 1;
         if(listValue.length > 0)
         {    
            for(var i = 0 ; i < listValue.length; i ++)
            {
              if(listValue[i] == name)
              {
                  alert("该户名已经存在,请输入其他户名!");
                  addNameForm.account_name.focus();
                  addNameForm.account_name.select();
                  return false;
              }
            }
                 var newTr = table_id.insertRow();
                 newTr.setAttribute("id","tr_id"+n);
                 newTr.setAttribute("bgcolor","#DBE3EE" );
                 var newTd0 = newTr.insertCell();
                 var newTd1 = newTr.insertCell();
                 newTd0.innerText = "";
                 newTd1.innerHTML = '<input type="text"  name="accountName'+n+'"  id="accountName_id'+n+'" size="45"  readonly="true" ><input type="button"  value=" X " onclick="delRow(this.parentElement.parentElement,'+n+');"/>'
                 document.getElementById("accountName_id"+n).value = name;
                 listValue.push(name);
                 addNameForm.account_name.focus();
                 addNameForm.account_name.select();
                 m = n;
          }
          else
          {
                 var newTr = table_id.insertRow();
                 newTr.setAttribute("id","tr_id"+n);
                 newTr.setAttribute("bgcolor","#DBE3EE" );
                 var newTd0 = newTr.insertCell();
                 var newTd1 = newTr.insertCell();
                 newTd0.innerText = "";
                 newTd1.innerHTML = '<input type="text"  name="accountName'+n+'"  id="accountName_id'+n+'" size="45" readonly="true" ><input type="button"  value=" X " onclick="delRow(this.parentElement.parentElement,'+n+');"/>'
                 document.getElementById("accountName_id"+n).value = name;
                 listValue.push(name);
                 addNameForm.account_name.focus();
                 addNameForm.account_name.select();
                 m = n;
          }
       }
   }   function delRow(src,j)
   {
      src.parentElement.deleteRow(src.rowIndex);
      listValue.splice(j-1,1);
   }   function addXLName()
   {   
       var xlName = document.getElementById("xlAccountName_id").value;
       var xlName_bak = document.getElementById("xlAccountName_bak_id").value;
       if(xlName.length == 0)
       {
           alert("请输入系列客户名称!");
           addNameForm.xlAccountName.focus();
           return false;
       }
       else if(xlName_bak.length == 0)
       {
           alert("请输入系列客户介绍!");
           addNameForm.xlAccountName_bak.focus();
           return false;
       }
       else if(listValue.length == 0 )
       {
           alert("未添加系列客户,请添加!");
           addNameForm.account_name.focus();
           return false;
       }
       else{
          document.getElementById("xlNameList_id").value = listValue.join("-");
      alert(document.getElementById("xlNameList_id").value);    
       //   addNameForm.method="post";
        //  addNameForm.action="addXLName.action";
         // addNameForm.target="_self";
          //addNameForm.submit();
       }
   }</script>
     <table width="95%"  border="1" align="center" cellpadding="1" cellspacing="1" class="chinese">
        <tr>
           <td colspan="3" height="27"  background="images/bg.gif" >
              <div align="center" class="title"><strong>新增系列客户</strong></div>
           </td>
        </tr>
        <tr class="chinese" bgcolor="#DBE3EE">
        <td>
         
         <br>
         
          <form name="addNameForm" action="" method="post">
            <input type="hidden" name="xlNameList" id="xlNameList_id"/>            <table width="85%"  border="1" align="center" cellpadding="1" cellspacing="1" class="chinese" id="table_id">
              <tr>
               <td align="right"><b>新建系列客户名称:</b></td>
               <td bgcolor="#DBE3EE" ><input type="text"   name="xlAccountName"  id="xlAccountName_id" size="35" >
               <br>(注:系列客户名称一定要简洁易懂,比如:富力系列、省财厅系列等。)</td>
              </tr>
              <tr>
               <td align="right"><b>系列客户介绍:</b></td>
               <td bgcolor="#DBE3EE" >
                 <input type="text"   name="xlAccountName_bak"  id="xlAccountName_bak_id" size="45"  >
               </td>
              </tr>
              <tr>
               <td align="right"><b>输入要添加的户名:</b></td>
               <td bgcolor="#DBE3EE" >
                 <input type="text" name="account_name" id="account_name_id" value=""  size="45" />&nbsp;&nbsp;
                 <input type="button"  value=" +  " onclick="addRow()" /> &nbsp;&nbsp;
                 <input type="button" value=" 提 交 " onclick="addXLName();">
                 <div  id="search_suggest"  style="display: none; position: absolute;" ></div>
               </td>
              </tr>
            </table>
            
           <br>
           
          </form>         </td>
        </tr>
     </table>

解决方案 »

  1.   


    function delRow(src,j)
    {
      src.parentElement.deleteRow(src.rowIndex);
      listValue.splice(j-1,1);
      m--;
    }
      

  2.   

    稍微改了下
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>test</title>
    <script type="text/javascript">
       var n = 1;
       var listValue = new Object(); //创建一个数组存放值
       function addRow()
       {
           var str="";
           var name = document.getElementById("account_name_id").value;
           if(name.length == 0)
           {
               alert("未输入客户名称!");
               addNameForm.account_name.focus();
               return false;
           }
           else
           {
             
                for(var i in listValue)
                {
                  if(listValue[i] == name)
                  {
                      alert("该户名已经存在,请输入其他户名!");
                      addNameForm.account_name.focus();
                      addNameForm.account_name.select();
                      return false;
                  }
                }
                listValue[name] = name;
                     var newTr = table_id.insertRow();
                     newTr.setAttribute("id","tr_id"+n);
                     newTr.setAttribute("bgcolor","#DBE3EE" );
                     var newTd0 = newTr.insertCell();
                     var newTd1 = newTr.insertCell();
                     newTd0.innerText = "";
                     newTd1.innerHTML = '<input type="text"  name="accountName'+n+'"  id="accountName_id'+n+'" size="45"  readonly="true" ><input type="button"  value=" X " onclick="delRow(this.parentElement.parentElement,'+name+');"/>'
                     document.getElementById("accountName_id"+n).value = name;
                     addNameForm.account_name.focus();
                     addNameForm.account_name.select();          n++;
           }
       }   function delRow(src,name)
       {
          delete listValue[name];
          src.parentElement.deleteRow(src.rowIndex);
       }   function addXLName()
       {   
           var xlName = document.getElementById("xlAccountName_id").value;
           var xlName_bak = document.getElementById("xlAccountName_bak_id").value;
           if(xlName.length == 0)
           {
               alert("请输入系列客户名称!");
               addNameForm.xlAccountName.focus();
               return false;
           }
           else if(xlName_bak.length == 0)
           {
               alert("请输入系列客户介绍!");
               addNameForm.xlAccountName_bak.focus();
               return false;
           }
           else if(listValue.length == 0 )
           {
               alert("未添加系列客户,请添加!");
               addNameForm.account_name.focus();
               return false;
           }
           else{
            var str = "";
                for(var i in listValue)
                {
                 if(str="") str+="-";
                 str += listValue[name];
                }
              document.getElementById("xlNameList_id").value = str;
          alert(document.getElementById("xlNameList_id").value);    
           //   addNameForm.method="post";
            //  addNameForm.action="addXLName.action";
             // addNameForm.target="_self";
              //addNameForm.submit();
           }
       }</script></head><body>
    <table width="95%"  border="1" align="center" cellpadding="1" cellspacing="1" class="chinese">
            <tr>
               <td colspan="3" height="27"  background="images/bg.gif" >
                  <div align="center" class="title"><strong>新增系列客户</strong></div>
               </td>
            </tr>
            <tr class="chinese" bgcolor="#DBE3EE">
            <td>
             
             <br>
             
              <form name="addNameForm" action="" method="post">
                <input type="hidden" name="xlNameList" id="xlNameList_id"/>            <table width="85%"  border="1" align="center" cellpadding="1" cellspacing="1" class="chinese" id="table_id">
                  <tr>
                   <td align="right"><b>新建系列客户名称:</b></td>
                   <td bgcolor="#DBE3EE" ><input type="text"   name="xlAccountName"  id="xlAccountName_id" size="35" >
                   <br>(注:系列客户名称一定要简洁易懂,比如:富力系列、省财厅系列等。)</td>
                  </tr>
                  <tr>
                   <td align="right"><b>系列客户介绍:</b></td>
                   <td bgcolor="#DBE3EE" >
                     <input type="text"   name="xlAccountName_bak"  id="xlAccountName_bak_id" size="45"  >
                   </td>
                  </tr>
                  <tr>
                   <td align="right"><b>输入要添加的户名:</b></td>
                   <td bgcolor="#DBE3EE" >
                     <input type="text" name="account_name" id="account_name_id" value=""  size="45" />&nbsp;&nbsp;
                     <input type="button"  value=" +  " onclick="addRow()" /> &nbsp;&nbsp;
                     <input type="button" value=" 提 交 " onclick="addXLName();">
                     <div  id="search_suggest"  style="display: none; position: absolute;" ></div>
                   </td>
                  </tr>
                </table>
                
               <br>
               
              </form>         </td>
            </tr>
         </table></body></html>
      

  3.   

    输入:d 后,点击删除按钮“X”时,提示:“d”未定义。
      

  4.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD> <BODY>
       <script type="text/javascript">
       var listValue ={}; //创建一个数组存放值
       function addRow()
       {
           var str="";
           var name = document.getElementById("account_name_id").value;
           if(name.length == 0)
           {
               alert("未输入客户名称!");
               addNameForm.account_name.focus();
               return false;
           }
       //不存在进行添加
       if(typeof(eval("listValue[name]"))=="undefined")
       {
     var n=name;
     var newTr = table_id.insertRow();
     newTr.setAttribute("id","tr_id"+n);
     newTr.setAttribute("bgcolor","#DBE3EE" );
     var newTd0 = newTr.insertCell();
     var newTd1 = newTr.insertCell();
     newTd0.innerText = "";
     newTd1.innerHTML = '<input type="text"  name="accountName'+n+'"  id="accountName_id'+n+'" size="45"  readonly="true" ><input type="button"  value=" X " onclick="delRow(this.parentElement.parentElement,'+n+');"/>'
     document.getElementById("accountName_id"+n).value = name;
     listValue[name]=name;
     addNameForm.account_name.focus();
     addNameForm.account_name.select();
      }
      else
      {
    alert("该户名已经存在,请输入其他户名!");
    addNameForm.account_name.focus();
    addNameForm.account_name.select();
    return false;
      }
       }   function delRow(src,j)
       {
          var name=src.children[1].children[0].id.replace(/accountName_id/,"");
      eval("delete listValue[name]");
          src.parentElement.deleteRow(src.rowIndex);  
       }   function addXLName()
       {   
           var xlName = document.getElementById("xlAccountName_id").value;
           var xlName_bak = document.getElementById("xlAccountName_bak_id").value;
           if(xlName.length == 0)
           {
               alert("请输入系列客户名称!");
               addNameForm.xlAccountName.focus();
               return false;
           }
           else if(xlName_bak.length == 0)
           {
               alert("请输入系列客户介绍!");
               addNameForm.xlAccountName_bak.focus();
               return false;
           }
           else if(listValue.length == 0 )
           {
               alert("未添加系列客户,请添加!");
               addNameForm.account_name.focus();
               return false;
           }
           else
       {
              document.getElementById("xlNameList_id").value = listValue.join("-");
      alert(document.getElementById("xlNameList_id").value);    
           }
       }</script>
     <table width="95%"  border="1" align="center" cellpadding="1" cellspacing="1" class="chinese">
            <tr>
               <td colspan="3" height="27"  background="images/bg.gif" >
                  <div align="center" class="title"><strong>新增系列客户</strong></div>
               </td>
            </tr>
            <tr class="chinese" bgcolor="#DBE3EE">
            <td>
             
             <br>
             
              <form name="addNameForm" action="" method="post">
                <input type="hidden" name="xlNameList" id="xlNameList_id"/>            <table width="85%"  border="1" align="center" cellpadding="1" cellspacing="1" class="chinese" id="table_id">
                  <tr>
                   <td align="right"><b>新建系列客户名称:</b></td>
                   <td bgcolor="#DBE3EE" ><input type="text"   name="xlAccountName"  id="xlAccountName_id" size="35" >
                   <br>(注:系列客户名称一定要简洁易懂,比如:富力系列、省财厅系列等。)</td>
                  </tr>
                  <tr>
                   <td align="right"><b>系列客户介绍:</b></td>
                   <td bgcolor="#DBE3EE" >
                     <input type="text"   name="xlAccountName_bak"  id="xlAccountName_bak_id" size="45"  >
                   </td>
                  </tr>
                  <tr>
                   <td align="right"><b>输入要添加的户名:</b></td>
                   <td bgcolor="#DBE3EE" >
                     <input type="text" name="account_name" id="account_name_id" value=""  size="45" />&nbsp;&nbsp;
                     <input type="button"  value=" +  " onclick="addRow()" /> &nbsp;&nbsp;
                     <input type="button" value=" 提 交 " onclick="addXLName();">
                     <div  id="search_suggest"  style="display: none; position: absolute;" ></div>
                   </td>
                  </tr>
                </table>
                
               <br>
               
              </form>         </td>
            </tr>
         </table>
     </BODY>
    </HTML>
      

  5.   

    问题依旧,输入:d ,点击‘+’添加到新增行后,点击删除按钮“X”时,提示错误:行:     1
    Char:   1
    错误:   'd’未定义
    代码:   0
      

  6.   


    function deleteRow(o) {
         //这里传入输入的值即可
         var temp = [];
         for (var i = 0; i < listValue.length; i++) {
              if (listValue[i] != o) {
                   temp.push(listValue[i]);
              }
         }
         listValue = temp;//重新赋值,覆盖删除掉的数据
    }
    传递的参数不对吧
      

  7.   

    delRow(this.parentElement.parentElement,'+n+')
    前面一个参数是为了调用该方法时删除表单。IBM_hoojo 写的方法也不行,还是会删除某个数据后,再添加,再删除,再添加即会提示该数据已经存在。应该是delRow方法的问题
      

  8.   

    我也很想分享解决之后的成果  I need so much knowledge
      

  9.   

    不好意思,上次输入字母的时候有BUG,帖子可能沉下去了,没看到
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>test</title>
    <script type="text/javascript">
       var n = 1;
       var listValue = new Object(); //创建一个数组存放值
       function addRow()
       {
           var str="";
           var name = document.getElementById("account_name_id").value;
           if(name.length == 0)
           {
               alert("未输入客户名称!");
               addNameForm.account_name.focus();
               return false;
           }
           else
           {
             
                for(var i in listValue)
                {
                  if(listValue[i] == name)
                  {
                      alert("该户名已经存在,请输入其他户名!");
                      addNameForm.account_name.focus();
                      addNameForm.account_name.select();
                      return false;
                  }
                }
                listValue[name] = name;
                     var newTr = table_id.insertRow();
                     newTr.setAttribute("id","tr_id"+n);
                     newTr.setAttribute("bgcolor","#DBE3EE" );
                     var newTd0 = newTr.insertCell();
                     var newTd1 = newTr.insertCell();
                     newTd0.innerText = "";
                     newTd1.innerHTML = '<input type="text"  name="accountName'+n+'"  id="accountName_id'+n+'" size="45"  readonly="true" >'
                      +'<input type="button"  value=" X " onclick="delRow(this.parentElement.parentElement,\''+name+'\');"/>'
                     document.getElementById("accountName_id"+n).value = name;
                     addNameForm.account_name.focus();
                     addNameForm.account_name.select();          n++;
           }
       }   function delRow(src,name)
       {
             delete listValue[name];
          src.parentElement.deleteRow(src.rowIndex);
       }   function addXLName()
       {   
           var xlName = document.getElementById("xlAccountName_id").value;
           var xlName_bak = document.getElementById("xlAccountName_bak_id").value;
           if(xlName.length == 0)
           {
               alert("请输入系列客户名称!");
               addNameForm.xlAccountName.focus();
               return false;
           }
           else if(xlName_bak.length == 0)
           {
               alert("请输入系列客户介绍!");
               addNameForm.xlAccountName_bak.focus();
               return false;
           }
           else if(listValue.length == 0 )
           {
               alert("未添加系列客户,请添加!");
               addNameForm.account_name.focus();
               return false;
           }
           else{
                   var str = "";
                   for(var i in listValue)
                {
                    if(str="") str+="-";
                    str += listValue[name];
                }
              document.getElementById("xlNameList_id").value = str;
          alert(document.getElementById("xlNameList_id").value);    
           //   addNameForm.method="post";
            //  addNameForm.action="addXLName.action";
             // addNameForm.target="_self";
              //addNameForm.submit();
           }
       }</script></head><body>
    <table width="95%"  border="1" align="center" cellpadding="1" cellspacing="1" class="chinese">
            <tr>
               <td colspan="3" height="27"  background="images/bg.gif" >
                  <div align="center" class="title"><strong>新增系列客户</strong></div>
               </td>
            </tr>
            <tr class="chinese" bgcolor="#DBE3EE">
            <td>
             
             <br>
             
              <form name="addNameForm" action="" method="post">
                <input type="hidden" name="xlNameList" id="xlNameList_id"/>            <table width="85%"  border="1" align="center" cellpadding="1" cellspacing="1" class="chinese" id="table_id">
                  <tr>
                   <td align="right"><b>新建系列客户名称:</b></td>
                   <td bgcolor="#DBE3EE" ><input type="text"   name="xlAccountName"  id="xlAccountName_id" size="35" >
                   <br>(注:系列客户名称一定要简洁易懂,比如:富力系列、省财厅系列等。)</td>
                  </tr>
                  <tr>
                   <td align="right"><b>系列客户介绍:</b></td>
                   <td bgcolor="#DBE3EE" >
                     <input type="text"   name="xlAccountName_bak"  id="xlAccountName_bak_id" size="45"  >
                   </td>
                  </tr>
                  <tr>
                   <td align="right"><b>输入要添加的户名:</b></td>
                   <td bgcolor="#DBE3EE" >
                     <input type="text" name="account_name" id="account_name_id" value=""  size="45" />&nbsp;&nbsp;
                     <input type="button"  value=" +  " onclick="addRow()" /> &nbsp;&nbsp;
                     <input type="button" value=" 提 交 " onclick="addXLName();">
                     <div  id="search_suggest"  style="display: none; position: absolute;" ></div>
                   </td>
                  </tr>
                </table>
                
               <br>
               
              </form>         </td>
            </tr>
         </table></body></html>