javascript
  • jquery
  • 2011-08-24 59 views 1 likes 
    1

    我想这是一个元素的ID内的元素的ID获取自动完成

    <input type="text" id='4711_herstellerName' class='hersteller' /> 
        <input type="text" id='0815_herstellerName' class='hersteller' /> 
        <input type="text" id='1234_herstellerName' class='hersteller' /> 
    

    我JQuery的部分看起来像这样:

    $(".hersteller").autocomplete("ajax/getHersteller.php", { 
        width: 320, 
        max: 4, 
        highlight: true, 
        scroll: true, 
        scrollHeight: 300, 
        formatItem: function(data, i, n, value) { 
    
             alert($(this).attr('id')); 
    
            var herstellernummer = value.split(" ")[0]; 
            var herstellername = value.replace(herstellernummer,""); 
    
            return herstellername.trim(); 
        } 
    }); 
    

    我要的是一个警告包含“4711_herstellerName”(当我改变第一个输入时)和“1234_herstellerName”(当我改变最后一个时)的内容,但是我得到的只是“未定义”......我显然误解了文档。某种灵魂能给我一个方向吗?

    也许还有另外一种方法来做我所需要的:在这个字段(和子方法选择)中的编辑应该改变在不同输入字段中的值(这些都是由php脚本提供的)。所有这些字段ID是自动创建的,但一组中的所有字段都具有相同ID的形式开始

    • [PID] _herstellerID
    • [PID] _herstellerName(这是一个I那个被自动完成
    • [PID] _herstellerLogo

    我所试图做的就是从自动完成,改变了ID,切下的PID部分,并创建herstellerID和herstellerLogo ID名称...

    • 编辑1改变的代码,使我的问题更加清晰
    • EDIT 2添加了什么我本来想实现
    +0

    你有一些格式问题在那里。 –

    +0

    试试这个[JQuery Autocomplete Event-Select](http://jqueryui.com/demosplete/#event-select) –

    +0

    @Noma“select”事件与它有什么关系?你如何建议OP使用它? –

    回答

    3

    ipr101的权利:jQuery的自动完成功能不设置this给你提供自动完成格式规则针对的对象。

    this只不过是它在函数表达式之外。所以,如果你设置了周围的上下文正确,你也许可以让它工作:

    $(".hersteller").each(function() { 
        var $obj = $(this); 
        $obj.autocomplete("ajax/getHersteller.php", { 
         width:  320, 
         max:   4, 
         highlight: true, 
         scroll:  true, 
         scrollHeight: 300, 
         formatItem: function(data, i, n, value) { 
         alert($obj.attr('id')); 
    
         var herstellernummer = value.split(" ")[0]; 
         var herstellername = value.replace(herstellernummer,""); 
    
         return herstellername.trim(); 
         } 
        }); 
    }); 
    

    (未经测试,但逻辑)

    +0

    不幸的是,这也只是给我一个“未定义”:(... – ty812

    +0

    现在试试吧..... –

    +0

    这是工作大:)你是一个绅士和学者:) – ty812

    0

    我认为在你的回调“这个”引用将不参考“thehersteller”文本框;试试这个 -

    alert($(".hersteller").attr('id')); 
    
    +0

    这工作正常 - 只要我在类hersteller只有一个领域 - 不幸的是,我可以有几个(这是在第一个地方使用类的原因:))感谢您的输入,无可厚非 – ty812

    相关问题