jQuery - динамическая конкатенация строк из двух наборов кнопок - PullRequest
0 голосов
/ 04 марта 2011

Я пытаюсь заставить jQuery объединить две строки в поле ввода, где каждая строка является результатом нажатия пользователем одной кнопки в каждом из двух списков кнопок.Значение поля должно обновляться каждый раз, когда нажимается другая кнопка, и, таким образом, отображать последнюю комбинацию используемых кнопок.

Вот как далеко я ушел:

http://jsfiddle.net/Argoron/YYNSm/

Спасибо за вашу помощь

Ответы [ 4 ]

3 голосов
/ 04 марта 2011

Я думаю http://jsfiddle.net/ThiefMaster/YYNSm/10/ - это то, что вы хотите.

$(document).ready(function() {
    var buttonData = [null, null];
    $("#lang input:button").click(function() {
        buttonData[0] = $(this).val();
        if(buttonData[0] && buttonData[1]) {
            $("#camouflage").val(buttonData[0] + ', ' + buttonData[1]);
        }
    });

    $("#letters input:button").click(function() {
        buttonData[1] = $(this).val();
        if(buttonData[0] && buttonData[1]) {
            $("#camouflage").val(buttonData[0] + ', ' + buttonData[1]);
        }
    });
});
0 голосов
/ 04 марта 2011
$(document).ready(function() {
    var languages = ['French', 'English', 'Spanish', 'German'];
    var letters = ['A', 'B', 'C', 'D', 'E'];

    $("input[type=button]").click(function() {       
        var selections = [];
        var previous = $("#camouflage").val().length > 0 ? $("#camouflage").val().split(',') : [];

        var isLetter = $.inArray($(this).val(), letters)  > -1;

        selections = previous;

        if (previous.length == 1){
            selections[$.inArray(previous[0], languages) > -1 ? 0: 1] = previous[0];
        }

        selections[isLetter ? 1 : 0] = $(this).val();
        $("#camouflage").val(selections.length > 1 ? selections.join(',') : selections[0]);
    });
});
0 голосов
/ 04 марта 2011

Используйте этот jquery, я сделал, насколько я понял вашу проблему

var allowpress=false;
$(document).ready(function() {
    $("#lang input[type=button]").click(function() {
        $("#camouflage").val($(this).val());
        allowpress=true;
    });

    $("#letters input[type=button]").click(function() {
        if(allowpress) {
        $("#camouflage").val( $("#camouflage").val() + ',' + $(this).val());
        allowpress=false;
        }
    });

});

вы можете увидеть здесь http://jsfiddle.net/gubhaju/wTFGm/

0 голосов
/ 04 марта 2011

Я не совсем понимаю, что вы имеете в виду, но в этом коде используется последняя комбинация языка и буквы: http://jsfiddle.net/JG6Aw/1/

var lang = '',
    letter = '',
    $cam = $('#camouflage');

$("#lang input").click(function() {
    lang = $(this).val();
    update();
});

$("#letters input").click(function() {
    letter = $(this).val();
    update();
});

var update = function(){
    $cam.val(lang + ',' + letter);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...