0
我有問題,第一個文本框的作品自動完成,但不能用於其他通過按鈕添加的作品。這裏是我的代碼:jQuery自動完成不適用於多個文本輸入
HTML:
<input class="button" type="button" value="+" onclick="addRow('positionen')" />
<input class="button" type="button" value="-" onclick="deleteRow('positionen')" />
<table id="positionen">
<tr>
<td><input type="checkbox" name="chk[]" /></td>
<td><input class="ui-widget" type="text" name="text[]" placeholder = "Text" /></td>
<td><input type="text" name = "val[]" placeholder = "Val" /></td>
</tr>
</table>
功能addRow:
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;
switch(newcell.childNodes[0].type) {
case "text":
newcell.childNodes[0].value = "";
break;
case "checkbox":
newcell.childNodes[0].checked = false;
break;
}
}
}
功能deleteRow:
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("Can't delete all rows");
break;
}
table.deleteRow(i);
rowCount--;
i--;
}
}
} catch(e) {
alert(e);
}
}
自動完成代碼:
$(function() {
$(".ui-widget").focusin(function(){
$(this).autocomplete({
source: 'search.php'
});
});
});
默認情況下頁面上的第一個文本框與自動完成工作正常。但是,當我使用按鈕添加文本框時,自動完成功能不適用於此文本框。加載頁面時
「row.autocomplete」將其綁定到創建的行不適合我。然而,當我做「$(」。ui-widget「)。自動完成({0128}它工作正常! – thotho
我的錯誤:),我忘了把行放在$()中。如果你「$(」。ui-widget「)。autocomplete({source:'search.php'});」你正在綁定事件到現有的行 - 你自動完成事件將被稱爲幾次這是錯誤的 - 編輯答案 – homer
可悲的是,這是行不通的... – thotho