微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

动态添加的行上的jQuery自动完成使用Javascript

如何解决动态添加的行上的jQuery自动完成使用Javascript

| 下面是我用来在HTML页面中动态创建行的代码
 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 deleteRow(tableID) {
        try {
        var table = document.getElementById(tableID);
        var rowCount = table.rows.length;

        for(var i=0; i<rowCount; i++) {
            var row = table.rows[i];
            var chkBox = row.cells[0].childNodes[0];
            if(null != chkBox && true == chkBox.checked) {
                if(rowCount <= 1) {
                    alert(\"Cannot delete all the rows.\");
                    break;
                }
                table.deleteRow(i);
                rowCount--;
                i--;
            }

        }
        }catch(e) {
            alert(e);
        }
    }
以下是HTML文档中的jQuery和addRow和自动完成功能代码段,
<script type=\"text/javascript\" src=\"addBox.js\"></script>
<script type=\"text/javascript\" src=\"jquery-1.4.2.js\"></script>
<script type=\'text/javascript\' src=\"jquery.autocomplete.js\"></script>
<link rel=\"stylesheet\" type=\"text/css\" href=\"jquery.autocomplete.css\" />

<script type=\"text/javascript\">
$().ready(function() {
$(\"#1\").autocomplete(\"autocomplete.PHP\",{
width: 260,matchContains: true,//mustMatch: true,//minChars: 0,//multiple: true,//highlight: false,//multipleSeparator: \",\",selectFirst: false
}); 
});
</script>

<script type=\"text/javascript\">
$().ready(function() {
$(\"#3\").autocomplete(\"autocomplete1.PHP\",selectFirst: false
}); 
});
这是添加行按钮和表格的功能,我们在其中将自动完成功能与ID相关联,
<input type=\"text\" name=\"sub\" size=\"76\" /><br/><br/>
<INPUT type=\"button\" value=\"Add Row\" onclick=\"addRow(\'dataTable\')\" />

<INPUT type=\"button\" value=\"Delete Row\" onclick=\"deleteRow(\'dataTable\')\" />
<table border=\"1\" cellpadding=\"10\" id=\"data\">
<tr>
细节    数量    单位    单价 税        
<table id=\"dataTable\">
<TR>
        <TD ><INPUT type=\"checkBox\" name=\"chk\"/></TD>
        <TD ><INPUT type=\"text\" name=\"par[]\"size=\"20\" id=\"3\" /></TD>
        <TD><INPUT type=\"text\" name=\"qua[]\" size=\"5\"/></TD>
    <TD><INPUT type=\"text\" name=\"uom[]\" size=\"5\"/></TD>
    <TD><INPUT type=\"text\" name=\"un[]\" size=\"5\"/></TD>
自动完成功能仅适用于认情况下显示的第一个输入。对于使用addrow函数添加的其他行,它根本不起作用。如您所见,我们已经为名称为par []的输入框关联了id = \“ 3 \”。我们认为问题可能在那里。非常感谢您的协助。谢谢 !     

解决方法

        解决方案很简单,替换一个类的id,然后在您的addrow代码中将此类而不是4代替,例如:
$(function(){
    $(\'.autocomplete\').autocomplete({source: \'autocomplete.php\'});
});
希望对您有帮助。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。