动态添加的文本字段具有第一个文本字段的默认值

Dynamically added text field have default value of first text field

我有一个脚本,我可以在其中添加带有 "Add Button" 的文本字段,但其余字段获得第一个字段的默认值。你可以查看demo here。只需在演示中的项目字段中输入 Apple,您将获得 69 的价格。然后,当您单击 "Add Item" 按钮时,它会为所有生成的价格字段提供默认值 69。我想显示新商品的空价格字段。

我的脚本:

添加动态行

function addRow(tableID) {
            var table = document.getElementById(tableID);
            var rowCount = table.rows.length;
            var row = table.insertRow(rowCount);
            var colCount = table.rows[0].cells.length;
            for(var i=0; i<colCount; i++) {
                var newcell = row.insertCell(i);
                newcell.innerHTML = table.rows[0].cells[i].innerHTML;
                //alert(newcell.childNodes);
                switch(newcell.childNodes[0].type) {
                    case "text":
                            newcell.childNodes[0].value = "";
                            break;
                    case "checkbox":
                            newcell.childNodes[0].checked = false;
                            break;
                    case "select-one":
                            newcell.childNodes[0].selectedIndex = 0;
                            break;
                }
            $(function() {
              var availableTags = [
              "Apple",
              "Samsung",
              "Blackberry",
              "Nokia",
              ];
              $('input[name="item[]"]').autocomplete({
                  source: availableTags
              });
            });
            }
        }

获取商品价格脚本

function getXMLHTTP() { //fuction to return the xml http object
        var xmlhttp=false;  
        try{
            xmlhttp=new XMLHttpRequest();
        }
        catch(e)    {       
            try{            
                xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e){
                try{
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch(e1){
                    xmlhttp=false;
                }
            }
        }

        return xmlhttp;
    }
      function getproduct(element) {      

        var strURL="getProduct.php?product="+element.value; 
        var req = getXMLHTTP();

        if (req) {

            req.onreadystatechange = function() {
                if (req.readyState == 4) {
                    // only if "OK"
                    if (req.status == 200) {   
                        // last changes here:
                        element.parentNode.parentNode.getElementsByClassName('productdiv')[0].innerHTML=req.responseText;                       
                    } else {
                        alert("There was a problem while using XMLHTTP:\n" + req.statusText);
                    }
                }               
            }           
            req.open("GET", strURL, true);
            req.send(null);
        }       
    }

getProduct.php 脚本:

<?php 
$product = $_GET['product'];
if($product == "Apple") {
    $value = 69;
} else {
    $value = 59;
}
?>
<input name="unit_price[]" value="<?php echo $value; ?>" onkeyup="getValues()" id="unit_price" placeholder="Price" />

朋友,你的问题在:newcell.innerHTML = table.rows[0].cells[i].innerHTML;

您总是将第一行值分配给新添加的项目,无论如何