<form name="form1" method="post">
<body>
<input  type="text" name="product1"  size="5" maxlength="5" onChange="getdata(this)" >
<input  type="text" name="product2"  size="5" maxlength="5" onChange="getdata(this)" >
</body>
</form>我需要在javascript里将getdata函数写成这样一个功能
在product1 的文本框里写入一个数比如"8" 这个时候getdata(this) 的alert方法能打印出"8"
当product2 的文本框也写入一个数"5" 的时候这个时候getdata(this) 的alert方法能打印出"8,5"此时 字符串是"8,5"  当product2 修改成""的时候,也就是不填,这个时候getdata(this) 的alert方法能打印出"8"
当product1 修改成""的时候,也就是不填,这个时候getdata(this) 的alert方法能打印出""

解决方案 »

  1.   

    function getdata(){
        var box1 = document.getElementsByName("product1")[0];
        var box2 = document.getElementsByName("product2")[0];
        var msg = new Array();
        if(box1.value != "") {
            msg.push(box1.value);
            if(box2.value != "")
                msg.push(box2.value);
        }
        alert(msg.join(","));
    }
      

  2.   

    楼上的算法效率如果在我的 实际应用中低了 ,因为像 product1 product2这样的文本框有大几十个,并且是通过循环刷出来的。所以是不定数量的 。不可能 用 var box1 = document.getElementsByName("product1")[0]; var box2 = document.getElementsByName("product2")[0];这样的方法来设置BOX 。还有没有其他的办法
      

  3.   

    那如果8不填,输出什么呢?<!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="">
      <SCRIPT LANGUAGE="JavaScript">
      <!--
    function getdata()
    {
    var products = document.getElementsByName("product");
    var strTmp="";
    for(var i=0;i<products.length;i++)
    {
    if(products[i].value!="")
    {
    strTmp+=products[i].value+",";
    }
    }
    if(strTmp!="")
    {
    strTmp=strTmp.substring(0,strTmp.length-1);
    } document.getElementById("result").innerHTML=strTmp;
    }
      //-->
      </SCRIPT>
     </HEAD> <BODY>
      <form name="form1" method="post">
    <body> <input type="text" id="product1" name="product" size="5" maxlength="5" onChange="getdata(this)" ><br/>
    <input type="text" id="product2" name="product" size="5" maxlength="5" onChange="getdata(this)" ><br/>
    <br/>
    结果:<div id="result"></div>
    </body>
      </form> </BODY>
    </HTML>
      

  4.   

    几十个框你分配的name是product+i吧第几个框触发的事件就截取最后的那个i,然后循环获得product1-----producti的值加一起不就行 了
      

  5.   

    不同的name没什么意义,还不如设置不同的ID,相同的name为一组~~