克隆自动完成表后的jQuery /问题

时间:2013-11-01 15:22:13

标签: jquery autocomplete clone

我有一段用自动完成功能进行搜索的代码。选择该值后,它将启动一个函数,该函数在自动完成输入下方返回选择的详细信息。这部分完美无缺。

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

1 个答案:

答案 0 :(得分: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++;
});