javascript
  • jquery
  • 2011-08-24 97 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

    相關問題