JQuery автозаполнение на нескольких полях + сетка - PullRequest
1 голос
/ 16 марта 2012

с помощью ресурсов stackoverflow, мне удалось сделать автозаполнение на нескольких полях:

    $(function(){
        $('.auto_isrc').live('keyup.autocomplete', function(){
            var srs = "xtras/search_isrc.php";
            $(this).autocomplete({
                source: srs,
                dataType: "json",
                minLength: 2,
                select: function(event, ui) {
                    $("[col=isrc_id] input").val(ui.item ? ui.item.isrc_ID : "");
                    $("[col=ISRC] input").val(ui.item.ISRC);
                    $("[col=Track_Name] input").val(ui.item.Track_Name);
                    $("[col=ArtistName] input").val(ui.item.ArtistName);
                    $("[col=Track_Time] input").val(ui.item.Track_Time);
                    $("[col=Writer] input").val(ui.item.Writer);
                    $("[col=Publisher] input").val(ui.item.Publisher);
                    $("[col=TrackPLineYear] input").val(ui.item.TrackPLineYear);
                    $("[col=TrackPLineInfo] input").val(ui.item.TrackPLineInfo);
                    $("[col=TrackCLineYear] input").val(ui.item.TrackCLineYear);
                    $("[col=TrackCLineInfo] input").val(ui.item.TrackCLineInfo);
                },
                change: function(event, ui) {
                    $("[col=isrc_id] input").val(ui.item ? ui.item.isrc_ID : "");
                    if (ui.item) {
                        $("[col=ISRC] input").val(ui.item.ISRC);
                        $("[col=Track_Name] input").val(ui.item.Track_Name);
                        $("[col=ArtistName] input").val(ui.item.ArtistName);
                        $("[col=Track_Time] input").val(ui.item.Track_Time);
                        $("[col=Writer] input").val(ui.item.Writer);
                        $("[col=Publisher] input").val(ui.item.Publisher);
                        $("[col=TrackPLineYear] input").val(ui.item.TrackPLineYear);
                        $("[col=TrackPLineInfo] input").val(ui.item.TrackPLineInfo);
                        $("[col=TrackCLineYear] input").val(ui.item.TrackCLineYear);
                        $("[col=TrackCLineInfo] input").val(ui.item.TrackCLineInfo);
                    }
                }
            });
        });
});

моя загруженная сетка теперь выглядит так:

<tr id="1">
    <td col="ISRC" style="width: 116px; " class="editableCell"><input class="editableInput  " type="text"></td>
    <td col="Disc_Number" style="width: 31px; " class="editableCell"><input class="editableInput  " type="text"></td>
    <td col="Track_Number" style="width: 31px; " class="editableCell"><input class="editableInput  " type="text"></td>
    <td col="Track_Name" style="width: 156px; " class="editableCell"><input class="editableInput auto_isrc ui-autocomplete-input" type="text" undefined="" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true"></td>
    <td col="ArtistName" style="width: 100px; " class="editableCell"><input class="editableInput auto" type="text" undefined=""></td>
    <td col="Track_Time" style="width: 50px; " class="editableCell"><input class="editableInput undefined" type="text" onkeypress="return isNumberKey(event)" undefined=""></td> 
... </tr>
<tr id="2">...</tr>
    ... etc

сейчас - автозаполнениеработать, но это относится к каждому <tr>, но мне нужно только применить его к тому, над которым я работаю.как мне этого добиться?

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

с небольшой помощью я решил это следующим образом:

    var pid = $(this).parent().parent().attr('id');

            var srs = "xtras/search_isrc.php";
            $(this).autocomplete({
                source: srs,
                dataType: "json",
                minLength: 2,
                select: function(event, ui) {
                    $("#"+pid+" [col=isrc_id] input").val(ui.item ? ui.item.isrc_ID : "");
....

получил родительский идентификатор, затем применил изменения только к своим детям

0 голосов
/ 30 марта 2012

Я нашел проблему.Использование имени в качестве ключа приводит к сбою jquery.Это работает:

$("#txtApplicationName").autocomplete({
            source: "ApplicationProcess.php",
            minLength: 2,
            select: function (event, ui) {
                alert(ui.item.id);
                alert(ui.item.value);
            }
        });

С этим излучается из PHP:

[{"id":1,"value":"Generate Ideas"},{"id":2,"value":"Define Products"},{"id":3,"value":"Plan Production"}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...