【问题标题】:Get value in onSelect which is selected in autocomplete在自动完成中选择的 onSelect 中获取值
【发布时间】:2020-01-03 10:54:38
【问题描述】:

我试图从 AJAX 中获取另一个值,但它给了我一个错误 Uncaught TypeError: e.replace is not a function。

这是我的代码。

     source: function(name, response) {
      $.ajax({
        type: "GET",
        dataType: "json",
        url: af_vars.af_ajax_url,
        data: "action=get_listing_names&name=" + name,
        success: function(data) {
         // response(data);
            var tickers = [];
            $.map( data, function( item ) {
                for (var index = 0; index < item.length; index++) {
                    tickers.push(item[index]['tickers']);
                }
            });
            console.log(tickers);
            response(tickers);
        },
        error: function(response) {}
      });
    },
    onSelect: function(e, term, item) {
      //my code
    }

这是我的 PHP ajax 请求代码

$titles = array();
    if (!empty($results)) {
        foreach ($results as $term) {
            $data = array();
            $data['tickers'] = get_term( $term->parent, 'exchange' )->name ? esc_attr( get_term( $term->parent, 'exchange' )->name ) .' : '. addslashes($term->name) : addslashes($term->name) ;
            $data['isArchived']= get_term_meta( $term->term_id , 'ticker_archived', true) == 1 ? 'true' : 'false';
            $titles[] = $data;
        }
    }else {
        $titles[] = "No results found";        
    }      
    echo json_encode(array(
        'results' => $titles
        )
    ); 

所以,我想在下拉列表中显示代码,并希望 isArchive 结果作为隐藏值与 onSelect 中的代码一起传递

【问题讨论】:

  • “Uncaught TypeError: e.replace is not a function”表示“变量 E 不是字符串”。 .......因为变量“e”用于编写为“//my code”的部分,所以代码中最重要的部分是不可见的。你能告诉我们“OnSelect”函数里面有什么吗?

标签: javascript jquery wordpress autocomplete jquery-ui-autocomplete


【解决方案1】:

您可以尝试这种方式,它对我有用。或者,如果您可以将其放在服务器上并授予我访问权限,那么我也可以在那里进行检查。

source: function(query, process) {
    var objects = [];
    map = {};
    $.ajax({
        url: baseURL+"/admin/getmember",
        data: 'q=' + query,            
        dataType: "json",
        type: "GET",
        success: function (data) {
            console.log(data);
            $.each(data, function(i, object) {
                map[object.membername] = object;
                objects.push(object.membername);
            });
            process(objects); 
        }
    }); 
},
updater: function(item) {
    $('#hiddenId').val(map[item].id);
    return item;
}

PHP 代码

$memberResults = array();
foreach($members as $k=>$member){
    $memberResults[$k]['id'] = $member->id;
    $memberResults[$k]['membername'] = $member->fname.' '.$member->lname;
}

【讨论】:

    【解决方案2】:

    您可以注册任何更改:

    $('html').bind('input', function() {
        alert('test');
    });
    

    其他选项是获取模糊更新(离开元素焦点)

    $("input").on('blur keyup change click', function () {
    

    【讨论】:

      【解决方案3】:

      “Uncaught TypeError: e.replace is not a function”表示“变量'e'不是字符串。”

      除此之外.......由于变量“e”用于编写为“//my code”的部分,因此您没有共享代码中最重要的部分(即包含错误在此处不可见)。

      您能告诉我们“OnSelect”函数的内容吗?也许给我们一个codepen?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多