JQuery Автозаполнение получения идентификатора - PullRequest
0 голосов
/ 08 января 2012

Я знаю, что этот вопрос был рассмотрен, но ни одно из решений, похоже, не работает для меня.это мой код

    var dialogForm = getDialogForm();

    var $dialog = $('<div></div>').html(dialogForm)


    .dialog
    ({
         autoOpen:      false,
         title:         "New Message",
         draggable:     false,
         modal:         true,
         dialogClass:   "bg_FFF",
         position:      ["", 120],
         resizable:     false,
         width:         440,
         beforeClose:   function(event, ui){ $('.contactsInput').val(""); 
                                             $('.msgInput').val(""); 
                                             $(".removeContact").parent().remove();
                                             ignored.length = 0;}
    });


    $('.cancelDialog').live("click", function() 
    {
        //close dialog
        $dialog.dialog('close');
    });


    //send message is clicked
    $(".sendMsg").live("click", function()
    { 
         sendMsg();
    });


    //items to be ingnored
    var ignored = [];

    var contactsArray = getUserContacts(); 

    //attach autocomplete  
    $(".contactsInput").autocomplete({  

    minLength: 1,

    //define callback to format results  
    source: function(req, add){  

        //create an empty array
        var contactsList = [];

        //process response  
        $.each(contactsArray, function(index, val)
        {
            if(ignored.indexOf(val) == -1) 
            {
                contactsList.push(val);
            }
        });

        //pass array to callback            
        add( $.ui.autocomplete.filter( contactsList, extractLast( req.term ) ) );

    }, 


    //define select handler  
    select: function(e, ui){  

        //prevent default action
        e.preventDefault();alert( ui.item.toSource());

        //create formatted contact  
        var contact = ui.item.value, 

        span = $("<span>").text(contact); 

        a = $("<a>").addClass("removeContact").attr({  title: "Remove " + contact  }).text("x").appendTo(span);  

        //add contact to contact div  
        span.insertBefore(".contactsInput");

        //clear input
        $(".contactsInput").val("").css("top", 2);

        ignored.push(ui.item.value)


    },  

    //define select handler  
    change: function() { 

        //prevent 'to' field being updated and correct position  
        $(".contactsInput").val("").css("top", 2);  

        }  
    }); 

Я пытаюсь получить идентификатор имен в автозаполнении.я кормить источник данных локально из массива в формате имя пользователя-идентификатор.но все, что я получаю, это имя пользователя.Мне нужно имя пользователя, чтобы показать, но не идентификатор и получить идентификатор в скрытом формате.

Спасибо

1 Ответ

0 голосов
/ 08 января 2012

Источник содержит массив парных значений (метка и значение). Метка - это визуальное представление, а значение предназначено для обработки вашим кодом.

В функции select вы можете использовать ui.item.value и ui.item.label , если они указаны в source array.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...