1

我有一段代码可以自动完成搜索。一旦选择了值,它就会启动一个函数,该函数在自动完成输入下方返回选择的详细信息。这部分工作完美。

现在,我已经设置了第一部分的模板。一旦我克隆它并进行搜索,自动完成功能就会起作用,但是一旦选择了一个项目,函数 (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>
4

1 回答 1

0

您需要像这样在自动完成中添加相同的选择选项

$('.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,
        select: function (event, ui) {//the same function $(".actsearch").autocomplete
            var id = $(this).attr("id");
            loadAC(ui.item.value, id);//alert the selected item
        }
    });
});
$('#offer').append(copy);
window.uniqueId++;
});
于 2013-11-01T15:55:17.687 回答