【问题标题】:jQuery autocomplete UI Widget- Perform jQuery select event on dynamically created table row elementjQuery 自动完成 UI 小部件 - 在动态创建的表格行元素上执行 jQuery 选择事件
【发布时间】:2011-11-07 03:16:27
【问题描述】:

我正在对表格数据元素 txtRow1 的文本输入执行有效的 jQuery 自动完成功能。文本数据是远程的,来自 mysql 数据库,并由 JSON 作为文本输入的“值”返回。返回的数据包括另一段文本,该文本通过自动完成中的选择事件填充到相邻的表数据元素tickerRow1。

在 SO 社区的帮助下,自动完成功能现已上线并适用于动态创建的表格的所有文本输入元素(例如 txtRow1 到 txtRowN)。有 javascript 代码来创建和命名表格元素 txtRoxN + 1 和tickerRowN + 1。

但是,我对tickerRowN 的id 的选择事件有疑问。因为每次添加一行都会改变,所以我不知道如何为有问题的表数据的特定id调用select事件。

我已经做了很多搜索,但由于我是新手,所以当你已经知道 id 时,我能够找到的唯一函数可以操纵元素数据。这个 id 是动态创建的,所以我不知道如何构建语法。

感谢您的宝贵时间。

更新:非常感谢 JK,以下示例有效。我现在了解 jsFiddle 并将尝试将其用于所有进一步的问题。以下代码适用于我的动态示例,但我不知道为什么。叹。

jsFiddle working example

【问题讨论】:

    标签: javascript jquery html jquery-ui


    【解决方案1】:
    function getRowId(acInput){
         //set prefix, get row number
         var rowPrefix = 'txtRow';
         var rowNum = acInput.attr("id").substring((rowPrefix.length));
         return rowNum;
    }
    
    $("#txtRow1").autocomplete({
        source: states,
        minLength: 2,
        select: function(event, ui) {
           var tickerRow = "#tickerRow" + getRowId($(this));
            //set ticker input
            $(tickerRow).val(ui.item.label);
        }
    });
    

    http://jsfiddle.net/jensbits/BjqNz/

    【讨论】:

    • 非常感谢。我不仅了解了 jsFiddle,而且您还救了我。我只是希望我能理解它为什么起作用。
    • 我认为,最重要的是,我不明白 rowNum 变量做了什么。归还后好像没有在任何地方使用过。
    • @Matthew Bull 在这里使用:var tickerRow = "#tickerRow" + getRowId($(this)); 来创建 id。
    猜你喜欢
    • 2012-09-25
    • 2011-12-05
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 2015-06-09
    • 2011-05-13
    • 2011-04-11
    • 1970-01-01
    相关资源
    最近更新 更多