我有一段代码可以自动完成搜索。一旦选择了值,它就会启动一个函数,该函数在自动完成输入下方返回选择的详细信息。这部分工作完美。
现在,我已经设置了第一部分的模板。一旦我克隆它并进行搜索,自动完成功能就会起作用,但是一旦选择了一个项目,函数 (loadAC) 根本不会返回任何内容。
啊,我忘了提到带有attr名称的部分。我正在使用 IE11,无论我做什么,它都会将名称添加为 submitName。这能解释这个问题吗?有没有人设法解决这个问题?
我想知道输入名称、类和 ID 是否存在问题?请在代码下方找到。欢迎所有建议。谢谢!
<button class="addOffer">Add Offer</button>
<button class="delOffer">Delete Offer</button>
<TABLE id="AC" style="display:none" width="950" border="0">
<TR>
<TD width="23" class="g1"><INPUT type="checkbox" class="delCheckAC" name="chk"/></TD>
<TD class="g1"><INPUT type="text" id="ACREG" name="ACREG"/></TD>
<TD class="g1"></TD>
<TD class="g1"></TD>
</TR>
</TABLE>
<div id=offer>
<TABLE id="AC0" width="900" border="0">
<TR>
<TD width="23" class="g1"><INPUT type="checkbox" class="delCheckAC" name="chk"/></TD>
<TD width="100" class="g1"><INPUT type="text" class="actsearch" id="ACREG0" name="ACREG0"/></TD>
<TD class="g1"></TD>
<TD class="g1"></TD>
</TR>
</TABLE>
</div>
JS
<script type="text/javascript">
var uniqueId = 1;
var uniqueLeg = 1;
$(function () {
$(".actsearch").autocomplete({
source: 'suggest_act.php',
minLength: 3,
select: function (event, ui) {
var id = $(this).attr("id");
loadAC(ui.item.value, id);
}
});
});
function loadAC(ACVal, ACId) {
alert(ACVal);
var pattern = ACId.match(/(\D+)(\d+)/).slice(1);
var idtext = pattern[0];
var id = pattern[1];
$('#ACDetail' + id).remove();
$('#ACPic' + id).remove();
$.get("actsel.php", {
term: ACVal,
id: id
}, function (data) {
$('#AC' + id).append(data);
});
}
$('.addOffer').click(function () {
var copy = $('#AC').clone();
var formId = 'AC' + window.uniqueId;
copy.attr('id', formId);
copy.removeAttr('style');
copy.find(':input#ACREG').each(function () {
$(this).removeAttr('name');
$(this).addClass('actsearch');
var dateid = 'ACREG' + window.uniqueId;
$(this).attr('id', dateid);
$(this).attr('name', $(this).attr('id'));
$(this).autocomplete({
source: 'suggest_act.php',
minLength: 3
});
});
$('#offer').append(copy);
window.uniqueId++;
});
$('.delOffer').click(function () {
$(".delCheckAC").each(function (i, n) {
if ($(n).get(0).checked == true) {
$(n).closest("table").remove();
}
});
});
</script>