jQuery UI自动完成具有Ajax结果的多个输入字段

克莱德曼

我正在尝试做其他几个人在这里完成的工作。我已经尝试了所有可用的示例,但似乎无法使它正常工作。我已经复制了工作示例并反映了一些更改,以适应我的情况,纳达也是如此。

我正在使用的HTML看起来像这样。

<tr>
            <td><a id="remRow"><span class="icon icon-squared-cross"></span></a></td>
            <td><input type="hidden" data-type="itemID" name="itemID[]" id="itemID" class="form-control autocomplete_txt" autocomplete="off">
            <input type="text" data-type="item_name" name="item_name[]" id="item_name" class="form-control autocomplete_txt" autocomplete="off" placeholder="Item Name"></td>
            <td><input type="text" name="item_sku[]" id="item_sku" class="form-control changesNo" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;" placeholder="SKU#"></td>
            <td><input type="text" name="item_qty[]" id="item_qty" class="form-control changesNo" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;" placeholder="Qty"></td>
            <td><input type="text" name="item_rate[]" id="item_rate" class="form-control changesNo" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;" placeholder="Cost"></td>
            <td><input type="text" name="balance[]" id="balance" class="form-control totalLinePrice" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;" placeholder="Balance"></td>
            </tr>

我已经从一个可行的源获得的jQuery进行演示

//autocomplete script
$(".autocomplete_txt").keyup(function(){
    type = $(this).data('type');
    if(type =='itemID' )autoTypeNo=0;
    if(type =='item_name' )autoTypeNo=1;    
    $(this).autocomplete({
        source: function( request, response ) {
            $.ajax({
                url : 'ajax.php',
                dataType: "json",
                method: 'post',
                data: {
                   name_startsWith: request.term,
                   type: type
                },
                 success: function( data ) {
                     response( $.map( data, function( item ) {
                        var code = item.split("|");
                        return {
                            label: code[autoTypeNo],
                            value: code[autoTypeNo],
                            data : item
                        }
                    }));
                }
            });
        },
        autoFocus: true,            
        minLength: 0,
        select: function( event, ui ) {
            var names = ui.item.data.split("|");                        
            id_arr = $(this).attr('id');
            id = id_arr.split("_");
            element_id = id[id.length-1];
            $('#itemID_'+element_id).val(names[0]);
            $('#item_name_'+element_id).val(names[1]);
            /*$('#quantity_'+element_id).val(1);
            $('#price_'+element_id).val(names[2]);
            $('#total_'+element_id).val( 1*names[2] );*/
            calculateTotal();
        }               
    });
});

最后,PHP处理json。

case "fetchAll": {

        $query = $db->rawQuery("SELECT itemID, item_name, item_sku FROM items ORDER BY item_name ASC");
        if($query) {
            $data = array();
            foreach($query as $key => $val) {
                //echo $val['itemID'];
                $name = $val['itemID'].'|'.$val['item_name'].'|'.$val['item_sku'];
                array_push($data, $name);
            }

            echo json_encode($out); 
        } else { echo "error"; }
    }
    break;

我不断收到Uncaught TypeError:无论我使用哪个示例,都无法读取未定义的属性“ length”。我尝试使用jquery 3.0,并下载了最新的jquery.ui,认为这可能是问题所在。我还尝试过恢复到较旧的版本以进行检查。

在这一点上,我确信我只是缺少一些东西。3天有点荒谬,所以我需要帮助。我知道堆栈上也有类似的问题,是的,我已经尝试了全部。如果您还没有准备好猜测,那么我对jquery不太满意。我什至可以使其他所有功能都可以正常工作,甚至可以执行ajax调用,但是,这...

问候。

乔尔·埃尔南德斯(Joel Hernandez)

克莱德曼:

尝试在头部分中使用以下脚本:

HTML文件:

<head>

<script src='http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js'></script>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>


<script>

$( document ).ready(function() {

    //autocomplete script
    $(".autocomplete_txt").keyup(function(){
        type = $(this).data('type');
        if(type =='productCode' )autoTypeNo=0;
        if(type =='productName' )autoTypeNo=1;  
        $(this).autocomplete({
            source: function( request, response ) {
                $.ajax({
                    url : 'ajax.php',
                    dataType: "json",
                    method: 'post',
                    data: {
                       name_startsWith: request.term,
                       type: type
                    },
                     success: function( data ) {
                         response( $.map( data, function( item ) {
                            var code = item.split("|");
                            return {
                                label: code[autoTypeNo],
                                value: code[autoTypeNo],
                                data : item
                            }
                        }));
                    }
                });
            },
            autoFocus: true,            
            minLength: 0,
            select: function( event, ui ) {
                var names = ui.item.data.split("|");                        
                id_arr = $(this).attr('id');
                id = id_arr.split("_");
                element_id = id[id.length-1];
                $('#itemID_'+element_id).val(names[0]);
                $('#item_name_'+element_id).val(names[1]);
                /*$('#quantity_'+element_id).val(1);
                $('#price_'+element_id).val(names[2]);
                $('#total_'+element_id).val( 1*names[2] );*/
                calculateTotal();
            }               
        });
    });


  });




</script>
</head>

我无法复制您的方案,但是似乎您与jquery脚本有冲突。希望这可以帮助...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bootstrap输入字段中的样式jQuery自动完成

来自分类Dev

没有jQuery UI的自动完成

来自分类Dev

jQuery UI自动完成-没有结果消息

来自分类Dev

如果没有结果,如何禁用jquery ajax-自动完成?

来自分类Dev

具有标签或值属性的数据源的jQuery-UI自动完成

来自分类Dev

多个JQuery UI自动完成选择

来自分类Dev

具有相同来源的多个字段的jQuery自动完成功能-简单功能

来自分类Dev

jQuery选择具有多个类的输入

来自分类Dev

jQuery UI自动完成和隐藏字段

来自分类Dev

Jquery UI自动完成的限制结果

来自分类Dev

jQuery UI通过Ajax错误自动完成:

来自分类Dev

如果没有结果,如何禁用jquery ajax-自动完成?

来自分类Dev

样式jQuery自动完成结果

来自分类Dev

jQuery自动完成和复制的输入字段

来自分类Dev

通过JQuery UI自动完成获取过滤结果

来自分类Dev

jQuery UI自动完成搜索结果不显示

来自分类Dev

Jquery UI自动完成的限制结果

来自分类Dev

具有自动完成功能的jQuery ajax:使用ajax实现它的错误

来自分类Dev

带有URL的jQuery UI自动完成

来自分类Dev

jQuery UI自动完成多个“响应”方法

来自分类Dev

jQuery UI自动完成多个远程(JSON,PHP,JS)

来自分类Dev

使用jQuery-UI自动完成功能选择选项时设置多个输入的值

来自分类Dev

使用Ajax PHP MYSQL的jQuery UI自动完成不显示结果

来自分类Dev

jQuery UI在动态字段上自动完成

来自分类Dev

仅当具有特定类时才将jQuery自动完成功能应用于输入字段

来自分类Dev

jQuery UI中的链接样式自动完成结果

来自分类Dev

在动态添加的 jQuery 自动完成输入字段中更改任何输入字段时,所有输入字段都会更改

来自分类Dev

JQuery Ajax 自动完成不显示结果

来自分类Dev

在 jquery-ui 自动完成上设置自定义输入字段值

Related 相关文章

  1. 1

    Bootstrap输入字段中的样式jQuery自动完成

  2. 2

    没有jQuery UI的自动完成

  3. 3

    jQuery UI自动完成-没有结果消息

  4. 4

    如果没有结果,如何禁用jquery ajax-自动完成?

  5. 5

    具有标签或值属性的数据源的jQuery-UI自动完成

  6. 6

    多个JQuery UI自动完成选择

  7. 7

    具有相同来源的多个字段的jQuery自动完成功能-简单功能

  8. 8

    jQuery选择具有多个类的输入

  9. 9

    jQuery UI自动完成和隐藏字段

  10. 10

    Jquery UI自动完成的限制结果

  11. 11

    jQuery UI通过Ajax错误自动完成:

  12. 12

    如果没有结果,如何禁用jquery ajax-自动完成?

  13. 13

    样式jQuery自动完成结果

  14. 14

    jQuery自动完成和复制的输入字段

  15. 15

    通过JQuery UI自动完成获取过滤结果

  16. 16

    jQuery UI自动完成搜索结果不显示

  17. 17

    Jquery UI自动完成的限制结果

  18. 18

    具有自动完成功能的jQuery ajax:使用ajax实现它的错误

  19. 19

    带有URL的jQuery UI自动完成

  20. 20

    jQuery UI自动完成多个“响应”方法

  21. 21

    jQuery UI自动完成多个远程(JSON,PHP,JS)

  22. 22

    使用jQuery-UI自动完成功能选择选项时设置多个输入的值

  23. 23

    使用Ajax PHP MYSQL的jQuery UI自动完成不显示结果

  24. 24

    jQuery UI在动态字段上自动完成

  25. 25

    仅当具有特定类时才将jQuery自动完成功能应用于输入字段

  26. 26

    jQuery UI中的链接样式自动完成结果

  27. 27

    在动态添加的 jQuery 自动完成输入字段中更改任何输入字段时,所有输入字段都会更改

  28. 28

    JQuery Ajax 自动完成不显示结果

  29. 29

    在 jquery-ui 自动完成上设置自定义输入字段值

热门标签

归档